TCP/IP(一)

来源:互联网 发布:slack mac 版 编辑:程序博客网 时间:2024/04/29 06:57

应用层 APDU
表示层 PPDU
会话层 SPDU(session protocol data unit)
传输层 片段(segment)
网络层 包(packet)
数据链路层 帧(Frame)
物理层 比特流(Bit)

MTU,maximum transmission unit最大传输单元,以太网和IEEE802.3对数据帧的长度都有限制。如果IP层有一个数据报要传输,而且数据的长度比链路层的MTU要大,那么IP层就要进行分片(Fragmentation),把数据报分为若干片,这样每一片都小于MTU。
当网络的两台主机互相通信时,两台主机要通过很多的网络,每个网络的链路层都有不同的MTU,其中两台通信主机路径中的最小MTU被称作路径MTU。

IP–>MAC 地址解析(ARP)
MAC–>IP 反向地址解析协议(RARP)
以太网帧格式:
目的地址(4) 源地址(4) 类型(2) 数据 CRC(校验码)
0800 IP数据报
0806 ARP请求应答 PAD
8035 RARP请求应答 PAD
链路层的目的MAC地址来源,IP地址可能无法到达或者不存在需要用ICMP协议用于传递差错信息、时间、回显、网络信息等控制数据。
ping:首先判断发送的是主机名还是IP地址,调用函数gethostbyname()解析主机B,将主机名转换成一个32位的IP地址,这个过程叫做DNS解析。ping向目的IP地址发送一个ICMP的ECHO包;为将目标主机的IP地址转换成48位硬件地址,在局域网内发送ARP请求广播,查找主机B的硬件地址。主机B的ARP协议接收到主机A的ARP请求后, 将本机的硬件地址填充到应答包,发送ARP应答到主机A。主机A发送ICMP数据包到B,主机B接收主机A的ICMP包,发送响应包。主机A接收到主机B的ICMP相应包。

RARP反向地址解析协议,无盘工作站由于没有硬盘无法将IP地址保存到配置文件里。要想获取无盘工作站(知道自己的MAC地址)的IP地址,需要在启动的时候发送RARP请求,RARP服务器保存了无盘工作站的IP地址,响应无盘工作站。

IP数据报格式
版本 首部长度(4位),服务类型(8位),总长度(16位),标识(16位),标志(3位),片偏移(13位),生存时间(8位),协议类型(8位),头部校验和
路由:搜索匹配的主机地址,搜索网络地址,搜索默认表项

TCP特点
基于字节流,TCP层传输的数据segment它们的边界不做任何的假定,这意味着发送数据可能要多次,接收也需要一次或多次,或者一次发送多个segment或者接收多个segment,所以TCP有粘包问题。面向链接,通信之前需要先进行链接,可靠传输,会对数据进行校验、排序、去重。缓存传输,全双工,流量控制。

IP头部(20字节) TCP头部(20字节) TCP数据
TCP数据格式:源端口号,目的端口号,序列号,确认号,头部长度,保留,标志位,窗口尺寸(16位),校验和(16位),紧急指针(16位),选项与填充(选项4字节整,否则用0填充)
紧急方式发送的数据也称为带外数据最长报文大小MSS(maximum segment size),每个链接方通常都在通信的第一个报文段中指明这个选项。它指明本端所能接收的最大长度的报文段。该选项如果不设置,默认设为536字节。
可靠性
差错 校验和
丢包 超时重传 确认
失序 seq序列号
重复 seq序列号

滑动窗口协议:用于流量控制,发送端有发送窗口,接收端有接收窗口,TCP头部有一个窗口大小的16位整数,通告窗口,通告MSS。窗口的大小不是越大越好,而是需要控制在一定的范围内。
UDP特点 无链接 不可靠 一般情况下UDP更加高效
UDP报文 源端口(16位),目地端口(16位),UDP数据长度(16位),UDP校验和(16位),数据。

0 0