传输层协议
TCP/IP协议
最早的传输协议叫NCP协议
NCP:网络核心协议
网络核心协议(NCP)管理对 NetWare 服务器资源的访问。NCP 向 NetWare 文件共享协议(即NFSP:NetWare File Sharing Protocol)发送过程调用消息,处理 NetWare 文件和打印资源请求。 NCP 是用于 NetWare 服务器和客户机之间传输信息的主要协议。
之后由于功能限制,被TCP/IP协议替代
其实TCP/IP协议是一个协议栈(协议族),包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议,但由于TCP/IP协议用的最多,为了方便记忆,将这些协议统称为tcp/IP协议
TCP/IP分层
TCP/IP协议的分层模型:
目前大都数公司都使用的是4层模型,华为用的是5层模型
常见的TCP/IP协议及端口号
应用层
TCP协议:
HTTP:超文本传输协议 (端口号80)
HTTPS:加密的超文本传输协议 (端口号443)
FTP:文本传输协议 (端口号20.21)
UDP协议:
TFTP:简单文本传输协议 (端口号69)
TCP/UDP都可以用的协议
DNS:域名解析协议 (端口号53)
传输层
TCP协议:传输控制协议
UDP协议:用户数据报协议
网络层
ICMP:检测两台相互通信的主机联通性
IMP:主播协议
ARP:将IP地址转换成MAC地址,地址解析
RARP:逆地址解析
物理层
以太网协议
IEEE802.3:有限局域网
IEEE802.11:无线局域网
TCP协议的作用
TCP协议是面向链接的,有可靠的重传功能,同时提供全双共服务,每一个TCP都有缓存和接收缓存功能,用来临时存储数据。
UDP协议的作用
UDP协议传输速度快,是不可靠的传输协议
TCP协议的特性
Tcp工作在传输层
1.传输稳定
2.重传功能
3.缓存功能
4.全双工模式
5.错误检查
6.流量控制
7.将数据打包,分段,重组
8.确认传输机制
UDP协议的特性
1.只面向报文
2.传播速度快
3.不创建链接
4.首部开销小
TCP报文段
报文段解析
源端口号和目标端口号
16代表的是16位1,转换成十进制就是65535,范围为0-65535,这里的单位是(个),说明最多有65536个端口可以互通
端口号数量:2^16等于26636
端口号的作用
区别系统进程,准确找出被传输主机的地址,检测相互通信主机的联通性,除非进程结束,否则两个互通的端口号是不可能被释放的
端口号分为
服务端:端口号位固定
客户端:端客号是随机的
0-1023位管理员端口号,仅管理员可用
1024-495151是用户端口号
32768-60999是网页端口号
序号
为每个字节编号,便于接收方重组
确认号(ack)
当A给B发送一个请求,B收到后回复给A的信息里是包含确认号的(ack)
假设A发送的请求序号是X,那么B回复的信息里,确认号就是x+1,表示我接收到你的信息了
首部长度
表示TCP报文的首部长度为4位,但iana组织又规定首部长度的字节最小为20字节,最大为60字节
保留
没有实际意义,里面是空的
控制位
URG:紧急位,当URG为1时,表示紧急指针里的内容需要紧急处理
ACK:已建立链接时 AGK=1 未建立链接时 AGK=0
PSH:一般紧急位,当PSH=1时,数据片里面的数据需要优先处理
RST:如果RST=1,说明于主机的连接出了错误,有可能时主机崩溃,也有可能时防火墙的原因,必须释放连接,然后在重新建立连接
SYN:当SYN=1,ack(确认位)=1时,表示两台机器正在连接,当SYN=1,ack(确认位)=0时,表示发送方正在请求连接
FIN:请求与对方机器断开连接
窗口大小
AB双方商量后,确认好发送数据的大小值
紧急指针
与URG相互连同,当URG为1,表明这里的数据需要紧急处理
选项性
增强每项功能
TCP3次握手的原理
当PC1第一次请求连接PC2时
1.会先发送一个SYN报文请求
SYN(同部位)=1
Seq(序号)=X(这里的X是任意值,可以为B,可以为1.2.3.4.5.6)
2.PC2接收到PC1的请求,会回复一个SYN/ACK(同意连接)报文
SYN=1 ACK=1(同意连接)
Seq=y
Ack(确认号,确认收到PC1的请求)=X+1(表示接收到PC1的请求,所有将发送请求的序号添加进来)
- PC1收到同意请求后,会回复一个ACK报文,同时也会将PC2回复的序号添加进来
ACK=1 SYN=1 Seq(序号)=X+1(因为是第二次回复PC2,所以这里的序号要加上1,表示是第二次发送,以此类推)
Ack(确认号)=y+1
以上是三次握手的原理,表示相互通信了三次
为什么一定是三次握手
因为三次通信是两次完整的通信,一来一回才算一次完整的通信