OSI/RM参考模型 --- 开放式系统互联参考模型
由ISO国际标准化组织1979年建立的一个分委员会研究的网络互联模型。
核心思想 --- 分层 --- 属于同一层面的不同功能其目的和作用是相似或相近;不同层面的功能 之间具有明显的差异。每一层都在下一层所提供服务的基础上再提供增值服务。
分层的作用:1,更利于标准化 --- 分治
2,降低层次之间的关联性
3,更易于学习和理解
层次划分的五个原则:1,网络中各节点具有相同的层次;
2,网络中各节点同等层次功能相同;
3,同一节点内相邻层通过接口通信;
4,同一节点内底层向高层提供服务;
5,网络中各节点同层通过协议通信。
TCP/IP模型
TCP/IP协议簇
PDU --- 协议数据单元
OSI/RM模型 TCP/IP对等模型
应用层 --- L7PDU 应用层 --- 报文
表示层 --- L6PDU 传输层 --- 段
会话层 --- L5PDU 网络层 --- 包
传输层 --- L4PDU 数据链路层 --- 帧
网络层 --- L3PDU 物理层 --- 比特流
数据链路层 --- L2PDU
物理层 --- L1PDU
封装和解封装:
应用层 --- 应用层存在封装,只不过,应用层的封装内容取决于不同的应用协议。
HTTP --- 超文本传输协议 --- 获取网页信息 --- 80(TCP 80)
HTTPS --- HTTP + SSL(安全传输协议)/TLS --- 443(TCP 443)
FTP --- 文件传输协议 --- TCP 20 21
Tftp --- 简单文件传输协议 --- UDP 69
Telnet --- 远程登陆协议 --- TCP 23
SSH --- Telnet + SSL --- TCP 22
DHCP --- 动态主机配置协议 --- UDP 67 68
DNS --- 域名解析协议 --- TCP/UDP 53
传输层 --- 端口号 --- TCP/UDP
网络层 --- IP地址 --- IP协议
数据链路层 --- MAC --- 以太网 --- 早期局域网的解决方案,依靠交换机组建的二层网络。
物理层
以太网Ⅱ型帧
FCS --- 帧校验序列 --- 确保数据完整性的参数 --- CRC(循环冗余算法)
TCP和UDP
1,TCP是面向链接的协议,而UDP是无连接的协议;
TCP的三次握手 --- TCP建立连接的过程
TCP的四次挥手 --- TCP会话的断开
2,TCP协议的传输是可靠的,而UDP协议的传输“尽力而为”;
TCP的可靠性 --- 确认,重传,排序,流控
3,TCP协议可以实现流控,而UDP不行;
4,TCP可以分段,而UDP不行;
5,TCP消耗资源较大,传输效率较低;UDP耗费资源较小,速度快。
TCP和UDP的使用场景:
TCP协议更适用于对可靠性要求较高,但是对传输效率和资源占用要求较低的场景;UDP更 适用于对传输效率要求较高,可靠性要求较低的场景(即时类通讯)。
什么是面向链接?
在正式传输数据之前,先适用预先的协议,建立点到点的链接。
TCP建立的连接实际建立了一个双向的会话连接,即通讯双方都可以向对方发送数据。
TCP的(可变长)头部
伪头部校验 --- 除了校验传输层头部和数据内容外,还会将网络层头部中的一部分内容一起进 行校验。 --- 确保数据完整性
TCP头部长度最短20字节
TCP标志位
URG(urgent紧急):此标志表示TCP包的紧急指针域(后面马上就要说到)有效,用来保证TCP连接不被中断,并且督促中间层设备要尽快处理这些数据;
ACK(acknowledgement 确认):此标志表示应答域有效,就是说前面所说的TCP应答号将会包含在TCP数据包中;有两个取值:0和1,为1的时候表示应答域有效,反之为0;
PSH(push传送):(与URG相对,此作用于接收端,令接收端首先接受此数据)这个标志位表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即传送给应用程序,而不是在缓冲区中排队;
RST(reset重置):(当TCP连接出现严重错误时,RST=1,说明需要释放连接 --- 强制断开连接)这个标志表示连接复位请求。用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包;
SYN(synchronous建立联机):表示同步序号,用来建立连接。SYN标志位和ACK标志位搭配使用,当连接请求的时候,SYN=1,ACK=0;连接被相应的时 候,SYN=1,ACK= 1;这个标志的数据包经常被用来进行端口扫描。
FIN(finish结束):(结束TCP连接)表示发送端已经达到数据末尾,也就是说双方的数据传送完成,没有数据可以传送了,发送FIN标志位的TCP数据包后,连接将被断开。这个标志的数 据包也经常被用于进行端口扫描。
SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有 DATA数据传输,RST表示连接重置。
Sequence number(顺序号码)
Acknowledge number(确认号码)
*SYN:同步标志
同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户 端)的初始序列编号。
*ACK:确认标志
确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1,Figure-1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。
*RST:复位标志
复位标志有效。用于复位相应的TCP连接。
*URG:紧急标志
紧急(The urgent pointer) 标志有效。紧急标志置位,
*PSH:推标志
该标志置位时,接收端不将该数据进行队列处理,而是尽可能快将数据转由应用处理。在处理 telnet 或 rlogin 等交互模式的连接时,该标志总是置位的。
*FIN:结束标志
带有该标志置位的数据包用来结束一个TCP回话,但对应端口仍处于开放状态,准备接收后续数据。
UDP头部
IP协议
TTL --- 生存时间 --- 数据包每经过一个路由器的转发,其数值减1,当一个数据包的TTL值为 0是,路由器将不再转发而直接丢弃。
协议号 --- 上层所适用的协议类型 --- TCP --- 6,UDP --- 17
IP的分片和TCP的分段
MTU --- 最大传输单元 --- 默认值1500字节(IP首部+TCP/UDP首部+应用包头及其数据的最大段长度)
MSS --- 最大段长度(数据的最大段长度) --- 理论值1460字节,这个值需要进行协商,这个参数在TCP的SYN包携 带,如果双方不一致,则将按照小的执行。