目录
前言
传输层协议添加端口就可以标识应用层协议。应用层协议代表着服务器上的服务,服务器上的服务
如果对客户端提供服务,必须在TCP或UDP端口侦听客户端的请求。
一、TCP协议
1.TCP协议是什么
tcp是面向连接的、可靠的进程到进程通信的协议
tcp提供全双工服务,即数据可在同一时间双向传输
2.TCP报文段详解
tcp将若干个字节构成一个分组,叫报文段
端口号:在网络传输中端口号的作用是用来区分应用程序的 端口号的范围是0-65535
前1024端口已经被著名的一些程序或者协议使用了
序列号:表示本报文段所发送数据的第一个字节的编号
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号
首部长度:表示tcp报文段的首部长度
控制位:描述A B两台机器目前的状态
窗口大小:表示现在允许对方发送的数据量,也是告诉对方,从本报文段的确认号开始允许对方发送的数据量,达到此值,需要ACK确认后才能继续
校验和:查看数据是否完整
选项部分:其最大长度可根据tcp首部长度进行推断
3.控制位详解
URG(紧急位):表示本报文段发送的数据是否包含紧急数据
ACK(确认位):表示是否前面确认号字段是否有效
PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区读走数据,为接受后续数据腾出空间
PST(重置位):如果收到一个RST=1的报文,说明与主机的连接出现了严重错误,
必须释放连接,然后重新连接
SYN(同步位):在建立连接时试用,用来同步序号。 syn=1 请求连接
FIN(断开位):表示通知对方本端要关闭连接了,标记数据是否发送完毕。 FIN=1 断开连接
4.TCP三次握手
第一次握手 pc1发送syn报文,报文包含seq=x(序列号) syn=1(同步位)
第二次握手 pc2收到syn报文 回复SYN+ACK报文 seq=y(pc2的序列号) ack=x+1(确认号)
ACK=1(确认位) SYN=1(同步位)
第三次握手 pc1再回复一个ACK报文 seq=x+1(pc2第二个包的序列号) ack=y+1(确认号)
ACK=1(确认位)
5.TCP常用的端口号与功能
FTP 端口号21 FTP服务器所开放的控制端口
TELNET 端口号23 用于远程登录,可以远程控制管理目标计算机
SMTP 端口号25 用于发送邮件
HTTP 端口号80 超文本传输协议
POP3 端口号110 用于邮件的接受
二、UDP协议
1.UDP协议是什么
无连接 不可靠的传输协议
话费 开销小
2.UDP协议的端口号与功能
TFTP 端口号69 简单文件传输协议
RPC 端口号111 远程过程调用
NTP 端口号123 网络时间协议