计算机网络(三)TCP/IP分层模型与通信示例

1.数据包首部

每个分层中,都会对所发送的数据附加一个首部,在这个首部包含了该层必要的信息,例如发送的目标地址以及协议相关信息。
包首部:为协议提供的信息。首部的结构由协议的具体规范详细定义。
数据:所要发送的内容。在下一层的角度看,从上一分层收到的包全部被认为是本层的数据。
数据包首部的层次化
包:全能性术语。
帧:表示数据链路层中包的单位。
数据包:IP和UDP等网络层以上的分层中包的单位。
段:TCP数据流中的信息。
消息:应用协议中数据的单位。

2.发送数据包

1)应用程序处理

应用程序中会进行编码处理。
应用在发送消息的那一刻,建立TCP连接,从而利用这个TCP连接发送数据。

2)TCP模块的处理

TCP根据应用的指示,负责建立连接、发送数据以及断开连接。
TCP提供将应用层发来的数据顺利发送至对端的可靠传输,并且需要在应用层数据的前端附加一个TCP首部。
TCP首部中包括源端口号和目标端口号(用以识别发送主机跟接收主机上的应用)、序号(用以发送的包中哪部分是数据)以及校验和,(用以判断数据是否被损坏)。随后将附加了TCP首部的包再发送给IP。

3)IP模块的处理

IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据,并在TCP首部的前端在加上自己的IP首部。
IP数据包中IP首部后面紧跟着TCP首部,然后才是应用的数据首部和数据本身。
IP首部中包含接收端IP地址以及发送端IP地址。
紧随IP首部的还有用来判断其后面数据是TCP还是UDP的信息。
IP包生成后,参考路由控制表决定接受此IP包的路由或主机。
IP包将被发送给连接这些路由器或主机网络接口的驱动程序,以实现真正发送数据。
如果尚不知道接收端的MAC地址,可以利用ARP查找。

4)网络接口(以太网驱动)的处理

从IP传过来的IP包,对于以太网驱动来说不过就是数据。
给这数据附加上以太网首部并进行发送处理。
以太网首部中包含接收端MAC地址、发送端MAC地址以及标志以太网类型的以太网数据的协议。
根据上述信息产生的以太网数据包将通过物理层传输给接收端。
发送处理中的 FCS 由硬件计算,添加到包的最后。
设置FCS的目的是为了判断数据包是否由于噪声而被破坏。

3.经过数据链路的包

包流动时,从前往后依次被附加了以太网首部、IP首部、TCP包首部(或者UDP包首部)以及应用自己的包首部和数据。
包的最后则追加了以太网包尾。
包首部至少包含两个信息:

  1. 发送端和接收端地址。
  2. 上一层的协议类型。
    经过每个协议分层时,都必须有识别包发送端和接收端的信息。
    在应用的首部信息中,有时也会包含一个用来识别其数据类型的标签。
    分层中包的结构

4.数据包接收处理

包的接收流程是发送流程的逆序过程。

5)网络接口(以太网驱动)的处理

主机收到以太网包以后,首先从以太网的包首部找到MAC地址判断是否为发给自己的包。
如果接收到了恰好是发给自己的包,就查找以太网包首部中的类型域从而确定以太网协议所传送过来的数据类型。
例如数据类型为IP包,则再将数据传给处理IP的子程序。
如果以太网包首部的类型域包含了一个无法识别的协议类型,则丢弃数据。

6)IP模块的处理

IP模块收到IP包首部及后面的数据部分以后,也做类似的处理。
对于有路由器的情况下,接收端地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送达的主机或路由器以后再转发数据。

7)TCP模块的处理

在TCP模块中,首先会计算一下校验和,判断数据是否被破坏。
然后检查是否在按照序号接收数据。
最后检查端口号,确定具体的应用程序。
注:数据接收完毕后,接收端则发送一个 “确认回执" 给发送端。如果这个回执信息未能达到发送端,那么发送端会认为接收端没有接收到数据而一直反复发送。

8)应用程序的处理

接收端应用程序会直接接收发送端发送的数据。
TCP/IP各层对邮件的收发处理

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值