1.OSI网络模型
层级 | 层名 | 用途 |
---|---|---|
7 | 应用层 | 提供应用程序间通信 |
6 | 表示层 | 处理数据格式、数据加密 |
5 | 会话层 | 建立、维护和管理会话 |
4 | 传输层 | 端到端连接 |
3 | 网络层 | 寻址和路由选择 |
2 | 数据链路层 | 提供介质访问、链路管理等 |
1 | 物理层 | 比特流传输 |
TCP/IP五层模型中,将OSI上三层合为一层,共五层。
各层常用端口、协议
层名 | 协议(端口号/协议号) |
---|---|
应用层 | DHCP(67/68)、DNS(53)、Telnet(23)、HTTP(80)、FTP(21/20) |
传输层 | TCP(6)、UDP(17) |
网络层 | ARP(2.5)、IP、ICMP1(3.5)、OSPF(89)、VRRP(112) |
数据链路层 | Ethernet、PPP |
物理层 | 太多了、不重要 |
2.IP协议
2.1IP协议特点
IP是无连接的、尽力而为的、无序的、不可靠的
2.2IP包头结构
标识符、标志位、分段偏移量都是为分片服务,当主机发送或网络转发IP数据包时,当数据包过长就会分片,分片只会在目标主机上重组。
标识符:16bit,同一IP包的各个分片的标识符相同,用来标识分片;
标志位:3bit
第一位:没有使用;
第二位:DF位,DF=1不允许分片,=0允许分片;
第三位:MF位,MF=1表示后面还有分片,=0表示没有了。
分段偏移量:13bit
表示该分片属于原数据包的哪一位置,单位为1偏移量每8byte
第一个分片分段偏移量为0,假如第一段分片的数据长度有1480byte,那么第二段分片的偏移量为1480/8=185;假如第二段为1480byte。那么第三段的偏移量为(1480*2)/8=370。
TTL:数据包存活时间,每经过路由器一次减一,防止环路。
协议:用于标识上层协议,TCP为6,UDP为17。
MTU:最大传输单元,链路层1518、网络层1500都有,含头部大小,当数据包大于MTU时可分片。
3.TCP
3.1 TCP概述
面向连接的,全双工通信,有序的,可靠的,流量控制,超时重传
3.2 TCP包头
序号SEQ、确认号ACK
编码位:
FIN:结束标志,为1时请求断开连接
SYN:同步标志,为1时请求建立连接
RST:复位标志,为1时请求重新连接
ACK:确认标志,为1时表示数据包有ACK数据
PSH:通知接受端立即将数据交给用户进程,不要停留在缓存
URG:紧急标志,配合紧急指针,紧急接受数据包里部分数据
3.3 三次握手
》》》SYN=1,SEQ=X;
ACK=X+1,SYN=1,SEQ=Y《《《;
》》》ACK=Y+1,SEQ=X+1。
3.4 四次挥手
》》》FIN=1,SEQ=X;
ACK=X+1《《《;
FIN=1,SEQ=Y《《《;
》》》ACK=Y+1。
4.UDP
包头结构