一.
1. tcp/ip 分层模型与通信示例
每个分层中对所发送数据附加一个首部,首部中包含了该层必要的信息,如发送的目标地址以及相关协议信息(如何读取数据 从哪一位开始读取几个bit) 由下一层角度看从上一层接收的包全部认为是本层数据。
包首部就是协议的脸。
常用的五个数据单位
包:全能性术语
帧:表示数据链路层中包的单位
数据报:IP和UDP等网络层以上的分层中包的单位
段:TCP数据流中的信息
消息:应用协议中数据的单位
二. 通信(TCP/IP)示例
假设甲给乙发电子邮件
(1)应用程序处理
<1>启动程序,填好邮件内容--------应用层
<2>编码处理,统一编码--------------表示层
<3>决定何时发送及发送顺序------- 会话层
(2)TCP模块处理
根据应用提示(会话层),负责建立连接、发送数据等保证数据可靠传输,为了实现TCP这一功能加上TCP首部。
TCP首部 | 源端口号 |
目标端口号 | |
序号(表示数据是发送端整个数据中的第几字节的序列号) | |
校验和(判断数据是否损坏) |
(3)IP模块处理
IP将TCP传过来的TCP首部和数据合起来作为自己的数据部分,附加上IP首部。
IP包生成-----参考路由控制表决定目标主机或路由-----发送给目标主机或路由的网络接口的驱动程序---数据传输
IP首部 | 接收端地址 |
发送端地址 | |
协议类型(判断是udp还是tcp) |
<4>网络接口(以太网驱动的处理)
同上附加以太网首部
以太网首部 | 接收端MAC |
发送端MAC | |
标志以太网类型的以太网数据的协议 |
以太网数据包-----物理层传输---接收端
(发送处理中的FCS由硬件计算--FCS是为了判断数据包是否由于噪声被破坏)
三.经过数据链路层的包
包流动时,从前往后依次被附加了以太网包首部、IP包首部、TCP包首部以及应用自己的包首部和数据。包最后增加了以太网包尾。
每个包首部至少包含两个信息:一个是发送端和接收端地址,另一个是上一层的协议类型。还可能包含一个识别位,标识上一层协议的种类信息。
以太网使用MAC地址,IP使用IP地址,TCP/UDP使用端口号识别两罐主机地址。