网络通讯模型
OSI七层参考模型
应用层—应用程序
接收人类传递的一些参数
表示层
转为二进制
会话层
建立维持和断开一次会话,PC和服务器之间建立的请求
传输层
优化传输—实现端对端的传输(为了区分进程和服务)
端口号—二进制构成,16位二进制构成,总数为65536个
0-65535,0-1023知名端口号,著名端口号,标定了特定的服务。
HTTP(超文本传输协议):80 (早期使用协议)
HTTPS:HTTP+SSL:443 (HTTP:执行网页相应的功能 SSL:加密安全方面功能)
网络层—IP地址,实现逻辑寻址(目标的IP地址)
数据链路层(介质访问控制层 简称MAC +逻辑访问控制层这两个子层 )逻辑访问控制层 简称LLC—物理寻址(目标的MAC地址)
物理层—即物理元件 作用:处理电信号
核心:分层
分层的好处
位于同一层的协议或者设备具备相同或者相似的功能,而不同层次之间的协议或者设备
具有明显的差异。
1.更利于标准化
2.降低层次之间关联性。
每一层都提供自身的服务
每一层都在下层的基础上提供一些增值服务
TCP/IP 协议簇:一系列协议的组合
解决OSI模型分的太细问题
TCP/IP模型
PDU—协议数据单元
L1PDU
L2PDU
…
L7PDU
应用层—数据报文
HTTP: 80
HTTPS:443
Telnet(远程登录协议):23
封装和解封装
封装:达到某一层次数据之前封装上对应的功能数据,让它执行相应的功能
解封装—封装的逆过程
应用层—数据报文
传输层—数据段
TCP
UDP
网络层—数据包
IP协议
数据链路层—数据帧
以太网协议
物理层—比特流(单位)
TCP
UDP
不同点:
1.TCP是面向连接协议(信息传输之前确认相互之间是否有回应),而UDP是无连接的一种协议(只发送信息,相互之间无回应)
三次握手
2.TCP的传输是可靠的,而UDP的传输是不可靠的
TCP—排序、确认、超时重传、流控的机制
3.TCP可以进行流控,而UDP不能(滑动窗口机制)
4.TCP可以进行分段,而UDP不能
5.TCP消耗资源会比较多,传输效率比较低,而UDP消耗资源比较小,传输效率比较高
应用场景:TCP一般运用在对数据可靠性要求比较高,但是对于传输效率要求相对较低
的情况,比如说传输文件/邮件等等。
UDP一般运用在对数据可靠性要求比较低,但是对于传输效率要求较高的情况,比如说
即时通讯,直播等等。
TCP的报头
相关字段解释:
首部长度:TCP报头长度 算法:32位二进制,每八位为一个字节,每行有4个字节,除去选项、数据字段后,即为报头最小长度=4字节✖5行=20字节。
选项:即可选项,使TCP报头长度是可变的。为TCP日后扩充功能时需用选项字段穿插的一个功能字段。
URG:紧急指针,紧急推送标志位。(与16位紧急指针联系使用)
ACK:确认标志位(与确认序号是不同的)
PSH:紧急推送标志位。推送数据优先发送,不需在数据缓冲区等待。
RST:非正常连接断开(数据未发送完,因突发情况断开.如:电源切断。)
SYN:在连接建立时用来同步序号。当SYN=1,ACK=0,表明是连接请求报文,若同意连接,则响应报文中应该使SYN=1,ACK=1.
FIN:正常连接断开(先建立三次握手,在数据发送完后 ,发送断开请求被对方同意后断开)
校验和:校验数据包完整性。
TCP的三次握手:
ACKnuber—确认序号=本地接收到的序号+1
IP协议
协议—指示上层使用何种协议
标识、标志、片偏移 —IP的分片
MTU—最大传输单元,默认情况下规定的大小
数据链路层最大不能超过1500字节
MSS—最大段长度—传输层分段后的数据大小——1460字节=MTU-IP报头-TCP报头
数据链路层—以太网协议
类型—标识上层协议类型
FCS—帧校验序列—CRC算法