- 应用层 :通过人机交互来实现各种各样的服务
- 表示层 :编码 解码 加密 解密
- 会话层: 发现 建立 维持 终止会话进程
前三层产生数据
- 传输层(主要包含三方面) :
1、根据端口号来区分不同的服务
端口号:0-65535
静态端口号 1-1023
动态端口号 1024-65535
0为保留端口号(特殊端口号)--在网络编程中使用,代表所有端口号
2、提供可靠的传输
可靠机制:确认 重传 排序 流控
TCP(传输控制协议)
面向连接的可靠传输协议
三次握手 四次挥手 ---面向连接
UDP(用户数据报文协议)
非面向连接的不可靠传输协议
3、数据分段
最大段长度 ---1480B
最大传输单元 -1500B
1字节=8位
封装和解封装(20B)
- 网络层:根据IP地址来进行逻辑寻址
IP --网际网络协议
代表设备--路由器
- 数据链路层
1.LLC 逻辑链路控制子层:
为上层服务提供FCS校验 --封装和解封装
2.MAC 媒介访问控制子层:
根据MAC地址来进行物理寻址
MAC地址--物理地址--硬件地址---网络终端设备的身份证号(一般不可更改)
- 物理层 :定义电气电压 光学特性 接口规范
代表: 网线 光纤
网线--传输---电信号
光纤--传输---光信号
封装与解封装
PDU---协议数据单元
上三层----数据报文
四层封装---数据段
三层封装---数据包
二层封装---数据帧
一层封装---比特流
TCP(传输控制协议)面向连接的可靠传输协议
可靠机制:确认 重传 排序 流控
面向连接--三次握手 四次挥手
三次握手 四次挥手
三次握手
SYN--同步序列号请求 ---请求连接的一种方式
Seq--序列号--记录发送的次数 ---随机生成(数值不固定)
Crl--控制位
ack--确认 (ack=seq+1)
四次挥手![](https://i-blog.csdnimg.cn/blog_migrate/4320391eeff73f89c3237fe6931d42ff.png)
FIN--请求断开连接
ACK--确认
步骤2 3中 seq相同---同时发送----存在微小的时间间隔
为什么需要三次握手,两次不行吗?
弄清这个问题,我们需要先弄明白三次握手的目的是什么,能不能只用两次握手来达到同样的目的。
第一次握手:客户端发送网络包,服务端收到了。
这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。
这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。
这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
————————————————
版权声明:本文为CSDN博主「且随疾风前行!」的原创文章
原文链接:https://blog.csdn.net/qq_37923760/article/details/102563083
若只进行“两次握手”,假设服务器在第二次握手的时候给客户端发送数据,数据从服务器发出,服务器认为连接已建立,但是在发送数据的过程中数据丢失,客户端认为连接没有建立,会重传,若每次数据都丢失,则客户端会一直发从syn请求 这就形成了“syn的混水冲击”
第三次握手是为了防止:如果客户端迟迟没有收到服务器返回确认报文,这时会放弃连接,重启一条连接请求。
挥手为什么需要四次?三次不可以吗?
TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP是全双工模式,这就意味着,当主机1发出FIN
报文段时,只是表示主机1已经没有数据要发送了,主机1告诉主机2,它的数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2的数据;当主机2返回ACK
报文段时,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的;当主机2也发送了FIN
报文段时,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,我也没有数据要发送了,之后彼此就会愉快的中断这次TCP连接。
数据--数据报文
报头---报文的头部
TCP的报头
Resv---预留位--保留出来的----服务质量
Rst--重置位
Urg--紧急指针--urgent pointer
Ctl ---控制位--只有0和1 为0 不生效 为1 生效
Window size --窗口大小 ---滑动窗口
Checksum ---校验和
Options---选项(可有可无)
FTP:文件传输协议
数据端口(数据传送端口)TCP 20
控制端口(传送控制信号)一般为TCP 21
telnet TCP 23 明文
SSH(安全外壳) TCP 22 密文
http TCP 80 8080
https TCP 443
SMTP(发邮件) TCP 25
POP3(收邮件) TCP 110
tftp UDP 69
DNS TCP/UDP 53
VNC TCP 5900
UDP的报头
IP的报头
Version 版本 IPv4
IHL IP header length
Service type ---服务类型
Packet length --数据包的长度
标识 标志 片偏移 ----支撑跨层封装
Time to live ---生存时间 主要作用--防止环路
取值范围 0-255
默认 情况下每经过一台路由器减1,为0时不传递
Protocol 协议号 ---标识上层协议
IPv4
TCP/IP协议栈---以太网 ethernet
Application --应用层
Presentation-表示层
Session--会话层
Trassport--传输层
Network--网络层
Data link--数据链路层
Physical--物理层
Network access ---网络接入层
Internet--因特网
TCP/IP协议只支持TCP/IP网络---IP网络
Network---包含的网络层协议--IPX appletalk
TCP/IP五层模型/四层模型
TCP/IP协议栈与OSI七层参考模型的区别
相同点: 二者都是模型化层次化
下层对上层提供服务支持
每层协议彼此相互独立
不同点:OSI先有模型才有协议
TCP/IP先有协议才有模型
TCP/IP协议栈只适用于TCP/IP网络层量不同
信号衰减-->物理加压--->中继器---信号失真--->交换机---->广播风暴-->路由器
中继器---产生冲突
路由器的作用:
- 隔离广播域/划分广播域
- 连接不同的网络
- 路由
交换机的作用:
- 无线延长传输距离
- 实现单播
- 解决冲突域
冲突域---可能产生冲突的地方
广播域--广播的范围
数据从设备的一个接口进入,从其他接口转发出去
默认情况下,一个交换机属于一个广播域
解决冲突的方法:
- FIFO --先入先出 First in first out
- CSMA/CD --带冲突检测的载波多路访问技术