精华内容
下载资源
问答
  • 谈到TCP/IP协议栈,我们可能对某些协议比较熟悉,比如在网页数据也就是超文本数据的传输我们所用到的HTTP协议,还有为HTTP协议提供...TCP/IP协议一个五层的结构,从上到下分别是应用层、传输层、网络层、数据链...

    谈到TCP/IP协议栈,我们可能对某些协议比较熟悉,比如在网页数据也就是超文本数据的传输我们所用到的HTTP协议,还有为HTTP协议提供服务的TCP协议,但是有一些协议我们有用到但可能知道地不是很清楚,比如ARP协议,DHCP协议还有DNS协议等等。

    ed5dbfef1cb03789c26836cabd0ba649.png

    我们这篇文章就是为了给大家介绍一些非常重要,但是大家并不是很清楚的协议。

    TCP/IP协议有一个五层的结构,从上到下分别是应用层、传输层、网络层、数据链路层和物理层。我们着重介绍一下上面四层。

    e6f1ee7042d8cafb5a9a1be1616bca8c.png

    c5c65084b7910b0654bd9e7bf9269ba1.png

    第一个是应用层,应用层本身可以说是用户真正应用的接口,这一层存在很多的协议,比如HTTP协议、FTP协议、DNS协议等。应用层还有一种情况就是用户自己开发程序,然后在自己的程序上写应用,这样也是可以的。在应用层下面,真正负责数据传输的有两种方式,一种是TCP,另一种是UDP。TCP和UDP最简单也最根本的区别就是TCP是确保传输数据的可靠性的,而UDP是没有的。

    然后是网络层,路由器、交换机都是网络层的设备。网络层主要负责的就是网络通讯,是不确保数据的可靠性的。

    数据链路层是依靠物理设备来进行数据传输的,在以太网中数据链路层就是MAC控制器。

    下图是TCP/IP协议栈的封装形式

    c5c65084b7910b0654bd9e7bf9269ba1.png

    TCP/IP是一个的分层是非常清晰的,在用户层上来讲是不用关心下面的每一层做什么,只需要在上层应用中通过调用某些应用接口的协议的一些标准来实现自己的应用和设计。

    当我的用户数据通过TFTP向其发送的时候,TFTP协议栈会自动添加一个TFTP Header, TFTP是调用UDP来进行数据传输的,所以当它调用UDP函数时,它又会加一个UDP Header. UDP下面是IP层,IP层会加一个IP Header,接下来就是数据链路层和物理层,又会加入Ethernet Header和Ethernet Trailer.

    在TCP/IP协议栈的软件部分,也就是应用层、传输层和网络层都是只加头包的,只有在数据链路层会添加头包和一个尾包

    ARP协议

    我们首先为大家介绍一下ARP协议

    ARP协议的作用是把IP地址和MAC地址对应起来,它处于IP层和数据链路层之间的一个协议。

    我们在做一个应用设计的时候只知道IP地址,下面举一个例子来说明为什么需要有ARP协议。

    f69aebc23bdc91829eebdc8a47efebf9.png

    我们需要一个动态的映射,把IP地址192.168.0.10和MAC地址02-00-00-00-00-00对应起来,使它们都可以找到对方。

    我们通过一个简单的模型来进行说明。我们这里有一块STM32的开发板和一台电脑

    db4319cce6e1fd75c78416dd81203444.png

    对STM32的开发板设置IP有两种方式,一种是静态设置的,也就是192.168.0.10;还有一种是DHCP服务器分配出来的,就是192.168.0.x,MAC地址是02-00-00-00-00-00。电脑的IP地址是192.168.0.11,MAC地址是Dell_8c:fb:d1。

    首先电脑发送了一个广播包,询问谁知道192.168.0.10,请告诉192.168.0.11(也就是电脑自己)。发送广播包的原因是刚开始不知道192.168.0.10是谁,所以只能网段的所有人发送一个广播包,如果在网段中存在192.168.0.10,那它就会给电脑反馈,告诉电脑它就是192.168.0.10,并且告诉电脑它的MAC地址。

    3a378e15c247b6f18dda4f96ebe4cac5.png

    我们来总结一些ARP协议的过程

    整个ARP协议中,当我拿到一个IP地址的时候我并不知道它的MAC地址,因此需要通过ARP的查询来问一下,发送一个广播包来寻找IP地址对应的MAC地址是什么,如果网段内存在这个IP地址,那它在收到广播包后就会回应并把MAC地址反馈回去。

    ICMP协议

    ICMP协议实际上也是属于网络层的一个协议,它的工作方式是我发送一个序列,对方再把这个序列发送回来,我看发送和接收的序列是不是相同来判断传输是不是正常,同时ICMP还提供了许多错误信息。

    9b4cf3fa143c0be677475a6fbe9e7888.png

    ICMP协议本身是为了诊断、控制在IP层的问题,其中最重要的就是诊断,通过ICMP可以诊断出IP层发生哪些网络传输的问题。

    ICMP包含两部分,一部分是交互式查询信息,另一部分是错误信息,这些信息有些可能是通过用户自己发出去的,也有可能是协议栈自己产生的。

    730c67de7078049625a9441cb17cdebd.png

    a0c7fbf3fd39c557dd603495c026eadb.png

    ICMP 错误信息有很多种,我们选其中比较常见的两种说一下,一种是目的地不可达,另一种是超时。超时的原因最可能是别人已经有了回复,但是只是超了时,超时的情况有好几种,比如网络驱动程序不好、当时的CPU很忙、网线情况不理想等。目的地不可达可能是由于网络没有搭建通。

    23b043940fe0f9505bcc836d2c33ce0c.png

    DHCP协议

    在它之前有一种功能跟它很相似的协议叫做BOOTP协议,这两种协议的功能几乎是一致的,目的都是请求一个IP地址。DHCP是通过UDP的客户端和服务器模型设计的一个协议,这个协议的目的就是为了动态获得IP地址,这个地址的分配和管理是由DHCP的server来管理的,我们要想去向HCP server请求租用一个IP地址,还需要一个DHCP的客户端,通过客户端和服务器的交互信息,就可以得到一个动态的可以使用的IP地址。

    5a59b1abb9ad106dc089b907eff4a61f.png

    我们通过一个例子来说明DHCP的使用

    首先我们必须在电脑上设置一个DHCP服务器,关于这一点有很多软件已经实现了,比较好用的是Tftpd32,这个软件可以开设一个DHCP server。我们把192.168.0.11设置成DHCP server,STM32评估板的MAC地址是02:00:00:00:00:00,给它分配的IP地址是192.168.0.2。那为什么给它分配这个地址呢?我们在设置DHCP server的时候,IP分配的起始地址是192.168.0.1,这个地址一般都是应用给网关的,最常见的网关就是路由器,当给新的DHCP客户端分配IP地址的时候是按顺序来的。但是我们说了,DHCP是一种租用IP的协议,也就是租期一到就要还,一般的DHCP服务器提供租期的时间是六个小时,也就是六个小时之后就会进行DHCP租期的更新。在租期到了的时候,如果想续租,那租用的IP地址很可能和原来的IP地址是一样的,这就是为了方便客户端进行一些处理,也为了能更好地管理网络。

    a1ca69064b502c014de07316103b660f.png

    DNS协议

    DNS协议是一种应用层协议,这个协议最有趣的地方是它用了传输层的两种协议,既用了TCP协议,又用了UDP协议。

    我们一般在浏览器中敲击的是域名,比如我们想查询ST官网的一些内容,我们会敲击www.st.com。其实我们要找到www.st.com是路由器通过查询ST官方网址的IP地址来得到的,也就是必须把www.st.com转为一个IP地址,但是让用户记住IP地址是很困难的,因此我们需要域名解析协议把www.st.com转化成一个IP地址。

    a21fafb82f6bce8abfaece3ed42a0e9f.png

    我们看一下DNS的具体实现,它是向DNS server询问哪里是www.st.com,DNS也是基于UDP、TCP的客户端服务器模型来设计的一个协议。

    d388c0c7c492c759ad8b8405e8083577.png

    感兴趣的朋友可以关注“AI电堂”公众号

    a6b3032042f2185534ebe29a3ddeddc7.png

    或者直接登录电堂网站观看相关课程

    电堂科技c.51diantang.com
    展开全文
  • 面试的时候被问到了上层协议如HTTP、DNS使用的传输层协议是什么呢?感觉那时候答的不是很好,所以解答一下以上的这问题 我们再进行网络通信,在进行客户端服务端进行通信的过程,很多情况下会用到DNS,也就是域名...

    DNS用的是TCP还是UDP呢

    面试的时候被问到了上层协议如HTTP、DNS使用的传输层协议是什么呢?感觉那时候答的不是很好,所以解答一下以上的这个问题

    我们再进行网络通信,在进行客户端服务端进行通信的过程,很多情况下会用到DNS,也就是域名服务器,其存在的目的是达成从域名(门牌号)到IP地址(真正的住址) 的映射

    DNS使用TCP协议与UDP协议视情况而定

    1.域名解析,实现这种功能一般来说是认为使用的UDP协议,当客户端向DNS查询域名,一般不会超过512字节,而且无连接的过程更安全也更快,所以使用UDP协议进行通信有其独特的好处,体现在效率高,相对来说更加安全,不过也是不可靠的

    2.区域传输,实现这种功能时则有时需要TCP协议,即进行与主域名服务器进行查询以确认数据是否有效,用TCP则是依赖了其可靠性

    3.理论上来说,在客户端与DNS进行通信的过程中,使用两种传输协议在理论上都是可以实行的,但是事实上在目前的浏览器或者说在目前的清醒进行客户端与DNS的通信时一般默认使用UDP,而且某些客户端与DNS进行通信的时候还指定了使用UDP的通信方式,这就和当前HTTP与HTTPS对比下,在民用,安全问题不严峻的前提下,会偏向于使用速度更快的协议

    TCP、UDP分别支持的应用层协议

    TCP:Telnet,FTP,SMTP
    UDP:NFS,SNMP,DNS,TETP
    
    展开全文
  • 地址解析协议 ARP

    2020-09-20 09:07:08
    ARP不是一个单纯的网络或者数据连路程协议,而是一个介于数据里和网络之间的协议。由于IP使用了ARP因此把ARP轨道网络,但ARP的作用是通过一个高速缓存,存储本地局域网的各主机和路由器的IP地址到硬件...

    ARP不是一个单纯的网络层或者数据链路层协议,而是一个介于数据链路层和网络层之间的协议。由于IP使用了ARP因此把ARP归道网络层,但ARP的作用是通过一个高速缓存,存储本地局域网的各主机和路由器的IP地址到硬件地址的映射表,以从网络层IP地址解析出数据链路层的硬件地址,因此也可以把ARP规划在数据链路层。

    ARP协议建立了主机IP地址和MAC地址的映射关系

    在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;
    数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;
    因此在通讯前必须获得目的主机的硬件地址;
    
    与ARP对应的RARP逆地址解析协议,作用是通过硬件地址找到IP地址,被DHCP协议取代
    

    ARP协议的工作流程:
    在这里插入图片描述

    1、源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”, 并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播)
    2、目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;
    3、每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址
    
    展开全文
  • (实体在应用层,但是跨多层工作,主要是上几层)2、协议网关!(一般都是指ipx/spx;tcp/ip不同网络协议的网络互连的功能体)3、ip网关!(不同网段之间访问的 功能体)而一个实体有可能冲当以上3者!所以不能断言...

    网关究竟属于哪一层?

    首先申明:我不是楼上所说的高手!
    我希望大家和气!我也不是主持公道!
    斑竹加我为精发帖子  冲我上面的两句哈哈哈哈后 !!!:):)

    1、应用网关!(实体在应用层,但是跨多层工作,主要是上几层)
    2、协议网关!(一般都是指ipx/spx<---->;tcp/ip不同网络协议的网络互连的功能体)
    3、ip网关!(不同网段之间访问的 功能体)

    而一个实体有可能冲当以上3者!所以不能断言工作在几层,或者设备是什么!
    第2者和第三者往往有路由器充当,也是路由器功能的2大体现!
    但是我们和第2者的实际来往不多

    和我们打交道多的是第1者和第3者
    特别是第三者,几乎网络上所有用户都要用,除非你仅仅工作在简单的局域网

     

     

     

    那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。

      所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

     

     

     

    网络中的代理  ● 常见问题

      ● 什么是代理服务器

      ● 代理服务器的安全以及相关问题

      ● IE,MyIE及TT浏览器中如何使用代理

      ● FTP软件中如何使用代理上传

      ● 网络游戏中如何使用代理服务器

      代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取

      

      

    网络游戏

    得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。主要的功能有:

    代理的功能

      1.突破自身IP访问限制,访问国外站点。教育网、169网等网络用户可以通过代理访问国外网站。

      2.访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务。

      3.突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种 限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国 外的代理服务器试试。

      4.提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界 的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。

      5.隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。

     

    展开全文
  • 计算机网络传输题库

    万次阅读 多人点赞 2018-07-31 17:44:22
    网络课课后题 1 下列哪一不是传输层的作用 A、可采用标准的传输原语开发自身应用,无惧底层通信网络的变化 B、提供可靠数据传输、...2 传输层协议能提供应用的多路复用/分用服务、可靠数据传送、带宽及延迟...
  • 聊天软件有什么应用层协议,在这个聊天软件中的每一个用户,就像是记得之前看到一个博客说微信TCP和UDP协议都用了,然后我就这么说了,然后老师就问我,你这是传输层的协议,那你应用层呢????应用层?啥协议?...
  • 让默认的就可以了,但是超频玩者是肯定不会放过任何可以提高性能的东西的,所以如果你想在这里让你的电脑提升一点性能的话,就必须慢慢试验,选择一个适当的参数才能让你的计算机达到性能和稳定的最佳状态!...
  • java中的JSF是一种协议吗?是的话是属于应用层还是其他哪一层的? JSF不是协议的话那JSF是什么东东,框架还是?
  • udp

    2010-12-10 10:30:00
    udp是一个简单的、面向数据报的无连接的协议,提供了快速但是不一定可靠的传输服务。 与tcp一样,UDP也是构建于底层ip协议之上的传输层协议。与tcp相比,UDP有如下一些特点: 首先,UDP协议时基于无...
  • A、应用层、表示层、会话层 B、会话层、传输层、网络层 C、物理层、数据链路层、网络层 D、物理层、数据链路层、传输层 4、计算机网络是由通信子网和_______组成。 A、资源子网 B、协议子网 C、国际互联网 D、TCP/IP...
  • 试问这时由哪一个计算机使用ARP响应分组将计算机B的硬件地址告诉计算机A? 问题4-25:有人将ARP列入网络接口,即认为ARP不在IP,这样对吗? 问题4-26:一个主机要向另一个主机发送IP数据报。是否使用ARP就可以...
  • 哪一根线应当连接到哪一个针脚呢? 问题4-9:将5类线电缆与RJ-45插头连接起来的具体操作步骤是怎样的? 问题4-10:不用集线器或以太网交换机,能否将两台计算机用带有RJ-45插头的5类线电缆直接连接起来? 问题4-11:...
  • 作为使用范围最广的传输层协议,TCP诞生于固网时代,在设计之初并没有考虑到上述种种情况,  这导致了它在某些场景下,性能并不是最优的。因此大多数的CDN厂商和一些规模较大的互联网公司都会  进行TCP协议的优化...
  •  对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。  Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless ...
  • java 面试题 总结

    2009-09-16 08:45:34
    对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session ...
  •  39、下面的IP地址中哪一个是B类地址?  A)10.10.10.1  B)191.168.0.1  C)192.168.0.1  D)202.113.0.1  Key: B  40、关于WWW服务,以下哪种说法是错误的?  A)WWW服务采用的主要传输协议是HTTP  B)WWW服务...
  • 子应用更像是一个业务组件而不是应用。</li></ul> 本文将着重介绍单实例场景下的微前端架构实践方案(基于 <a href="https://github.com/CanopyTax/single-spa">single-spa</a>),因为这个场景更...
  • 23.ICMP是什么协议,处于哪一层? 答:Internet控制报文协议,处于网络(IP) 24.触发器怎么工作的? 答:触发器主要是通过事件进行触发而被执行的,当对某一表进行诸如UPDATE、 INSERT 、 DELETE 这些操作时,...
  • asp.net知识库

    2015-06-18 08:45:45
    .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...
  • C#微软培训资料

    2014-01-22 14:10:17
    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...
  • 基于网络层协议的VLAN 4. 根据IP组播的VLAN 5. 按策略划分的VLAN 6. 按用户定义、非用户授权划分的VLAN  在监控产品中,所谓“跨VLAN”监控就是所监控的客户机位于多个VLAN中。  单网段:整个局域网只有一个IP...
  • c#学习笔记.txt

    热门讨论 2008-12-15 14:01:21
    /* 你能看得出来,这不是一篇正规的技术文章,所以若你不小心从里边读到了一个爱情故事,可不要奇怪。有很多人用程序来表述爱情,在其中我能看到有Money,有Girl,有一些还涉及到Sex,但是我没有找到Love,我始终相信...
  • C) 抽象类与接口的用法几乎都相同,具体用哪一个方法,只是在于程序设计人员的编程习惯而已。 D) 在Java中,最多使用的是抽象类,因为应用抽象类也可以实现多继承。而接口已经被限制使用。 题目21:d 程序如下: ...
  • JAVA自学之路

    2012-09-21 20:39:46
    对于一个以前从来没有接触过java的人,java无疑是庞大的,似乎每个领域都可以拓展开来都是一片开阔地,每一个领域要想深入接触到每一个细节所耗费的精力都是巨大的。这个时候大家都胸怀壮志,两眼发光的盯着每一个...
  • 如果需要把这个View抽出来作为一个另外一个应用程序可复用的组件就困难了。因为不同程序的的Domain Model是不一样的 <h2>MVC Model 2 在Web服务端开发的时候也会接触到MVC模式,而这种MVC模式不能严格称为MVC...
  • 从对企事业单位数据存储的分析中可以看出,要使整个企、事业单位内部的数据得到统一管理和安全应用,就必须有一个安全、性价比好、应用方便、管理简单的物理介质来存储和备份企业内部的数据资料。NAS网络存储服务器...
  • 软件测试经典面试题 (超实用)

    热门讨论 2012-02-16 13:48:08
    如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。 26 92、软件测试活动的生命周期是什么? 26 93、请画出软件测试活动的流程图? 26 94、针对缺陷采取怎样管理措施...
  • 计算机网络第五版谢希仁答案

    千次下载 热门讨论 2010-03-29 22:51:59
    数据的传输效率是指发送的应用层数据除以所发送的总数据(即应用数据加上各种首部和尾部的额外开销)。 若应用层数据长度为1000字节,数据的传输效率是多少? 解:(1)100/(100+20+20+18)=63.3% (2)1000/...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
关键字:

哪一个不是应用层协议