TCP/IP

TCP/IP四层模型从上到下分别是:

应用层:用户进程

运输层:TCP/UDP

网络层:ICMP/IGMP/IP

链路层:硬件接品/ARP/RARP

用户数据在传输过程中,一般会先后加上 应用首部、TCP首部、IP首部和以太网首部,这个过程称为封装,这样对等方就可以做相应的解封(分用)操作。

端口分三种:

Ports 0-1023 - well known ports (由 IANA 分配给一些特定服务)

Ports 1024-49151 - Registered port: vendors use for applications

Ports >49151 - dynamic / private ports

以太网 和 IEEE 802.3 对数据帧的长度限制分别是 1500 和1492 字节,这个限制叫作 MTU。两个主机通信可能经过多个网络,其中最小 MTU 称为路径MTU,如果IP数据报长度大于路径MTU,则会导致分片(Fragmentation),应尽量避免分片,因为它会降低网络通信效率。

以太网帧格式:

目的物理地址(6)+源物理地址(6)+ 帧类型(2)+ 数据(46~1500)+CRC(4)

前12个字节是以太网首部,帧类型分为三类,它的不同导致后面的数据也不同:

1、类型0800(2)+ IP数据报(46~1500)  【不足46字节就补全】

2、类型0806(2)+ ARP请求/应答(28)+ PAD(18)

3、类型8035(2)+ RARP请求/应答(28)+PAD(18)

其中,`ARP请求/应答(28)`又分为:

硬件类型(2)+ 协议类型(2)+ 硬件地址长度(1)+ 协议地址长度(1)+ op(2)+ 发送端以太网地址(6)+ 发送端IP地址(4)+ 目的以太网地址(6)+ 目的地址(4)

IP->MAC    ARP   地址解析

MAC->IP    RARP    反向地址解析

ARP 和 RARP 实质是介于链路层和IP层之间的协议,但归于链路层。

ICMP:用于传递差错信息、时间、回显、网络信息等控制数据。

TCP连接建立有三次握手,连接终止有四次握手。

TCP连接终止,是两个方向分别终止的,不是同时终止,先是A向B发起终止请求`FIN x,ACK y`,B同意并回发`ACK x+1`;然后B向A发起终止请求`FIN y,ACK x+1`,A回发`ACK y+1`

原文地址:https://www.cnblogs.com/tianyajuanke/p/3459186.html