查看网站是什么语言做的,网站运营的工作内容,阿里云建设网站安全吗,做酒的网站有哪些文章目录 传输层协议#xff1a;TCP协议和UDP协议一、TCP协议介绍#xff08;面向连接#xff0c;稳定#xff0c;慢#xff09;1、TCP特性2、TCP报文格式3、TCP三次握手4、TCP四次挥手5、常用的TCP端口号及其功能 二、UDP协议介绍#xff08;无连接#xff0c;不稳定TCP协议和UDP协议一、TCP协议介绍面向连接稳定慢1、TCP特性2、TCP报文格式3、TCP三次握手4、TCP四次挥手5、常用的TCP端口号及其功能 二、UDP协议介绍无连接不稳定快1、UDP协议2、常用的UDP端口号及其功能 传输层协议TCP协议和UDP协议
TCP协议传输控制协议UDP协议用户数据报协议
区别 TCP面向连接稳定慢 UDP无连接不稳定快
一、TCP协议介绍面向连接稳定慢
TCP是面向连接的、可靠的进程到进程通信的协议在传输真实数据之前先要进行连接测试三次握手如果测试通过才会发送真实数据否则不会发送真实数据TCP提供全双工服务即数据可在同一时间双向传输TCP报文
①、TCP将若干字节构成一个分组叫报文段Segment
②、TCP报文段封装在IP数据报中
1、TCP特性
1.1 工作在传输层
1.2 面向连接协议
1.3 全双工协议
1.4 半关闭
1.5 错误检查
1.6 将数据打包成段排序
1.7 确认机制
1.8 数据恢复重传
1.9 流量控制滑动窗口
2、TCP报文格式 1.1 端口号区别应用程序区别7层协议tcp/80(http)、tcp/443(https)、udp/69tftp)
端口号范围0~65535 应用层应用程序 传输层协议/端口号 tcp/8080端口代表七层协议http协议协议要靠程序来实现端口号不可以重复使用一个端口号只能被一个程序占用
1.2 序号发送端为每个字节编号重组便于接收端正确重组
1.3 确认号用于确认发送端的信息告诉对方我收到了你的消息确认机制
1.4 首部长度IP头部tcp头部确定首部数据结构的字节长度
1.5 控制位描述了AB两台设备目前处于什么状态
tcp协议先要建立连接
A —————》 B
①、没有建立连接
②、已建立连接
③、断开连接
URG紧急位表示本报文段中发送的数据是否包含紧急数据。ACK确认位表示前面确认号字段是否有效。只有当ACK1时前面的确认号字段才有效。PSH急切位提示接收端应用程序应该立即从TCP接收缓冲区中读走数据为接收后续数据腾出空间RST重置位如果收到一个RST1的报文说明与主机的连接出现了严重错误如主机崩溃必须释放连接然后再重新建立连接SYN同步位在建立连接时使用用来同步序号FIN断开位表示通知对方本端要关闭连接了标记数据是否发送完毕
1.6 滑动窗口窗口大小调节每次发送的数据包量
1.7 校验和提供额外的可靠性紧急指针标记紧急数据在数据字段中的位置
3、TCP三次握手
网络环境复杂为了确保数据能够到达两次不够四次多余三次正好 当pc1想和pc2建立起连接 将连接信息写入报文
第一步 pc1会发送一个建立连接的请求报文报文包括
①、报文的序号seqx
②、同步位请求建立连接关系 SYN1 ACK0 控制位当前两台设备处于什么状态 建立连接、处于连接、断开连接
第二步当pc2收到消息以后要回复一个报文
①、报文的序号seqy
②、ack确认号 我希望你下一次发送x1序号的报文给我
③、控制位SYN1ACK1请求建立连接pc2同意建立连接
第三步收到 pc2 同意建立连接的报文后
1.会发送一个x1报文
2.会告诉对方我希望你下次发送y1的序号报文给我
3.最后将ACK1 封装进去告诉你收到了你的同意请求并且我也统一和你建立连接
4、TCP四次挥手 ①、主动关闭方发送FIN客户端发送一个 FIN 报文报文中会指定一个序列号。此时客户端处于 FIN_WAIT_1 状态。
–即发出连接释放报文段FIN1序号sequ并停止再发送数据主动关闭TCP连接进入FIN_WAIT1终止等待1状态等待服务端的确认。
②、被动关闭方回复ACK服务端收到 FIN 之后会发送 ACK 1报文表明已经收到客户端的报文了此时服务端处于 CLOSE_WAIT 状态。 –即服务端收到连接释放报文段后即发出确认报文段ACK1确认号acku1序号seqv服务端进入CLOSE_WAIT关闭等待状态此时的TCP处于半关闭状态客户端到服务端的连接释放。客户端收到服务端的确认后进入FIN_WAIT_2终止等待2状态等待服务端发出的连接释放报文段。
③、被动关闭方发送FIN如果服务端也想断开连接了和客户端的第一次挥手一样发给 FIN 报文且指定一个序列号。此时服务端处于 LAST_ACK 的状态。 –即服务端没有要向客户端发出的数据服务端发出连接释放报文段FIN1ACK1序号seqw确认号acku1服务端进入LAST_ACK最后确认状态等待客户端的确认。
④、主动关闭方回复ACK关闭连接客户端收到 FIN 之后一样发送一个 ACK 报文作为应答且把服务端的序列号值 1 作为自己 ACK 报文的序列号值此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态服务端收到 ACK 报文之后就处于关闭连接了处于 CLOSED 状态。 –即客户端收到服务端的连接释放报文段后对此发出确认报文段ACK1sequ1ackw1客户端进入TIME_WAIT时间等待状态。此时TCP未释放掉需要经过时间等待计时器设置的时间2MSL后客户端才进入CLOSED状态。 有限状态机
closed断开没有任何连接状态 客户端服务端都有listen监听状态等待来自远方TCP端口的连接请求服务开启http进程80端口在帮进程看着有没有人找httpsyn-sent发送。在发送连接请求后等待对方确认客户端syn-received在收到和发送一个连接请求后等待对方确认服务端established代表传输连接建立双方进入数据传送状态客户端服务端都有fin-wait-1主动关闭,主机已发送关闭连接请求等待对方确认fin-wait-2主动关闭,主机已收到对方关闭传输连接确认等待对方发送关闭传输连接请求time-wait完成双向传输连接关闭等待所有分组消失close-wait被动关闭,收到对方发来的关闭连接请求并已确认last-ack被动关闭,等待最后一个关闭传输连接确认并等待所有分组消失closing双方同时尝试关闭传输连接等待对方确认
客户端先发送一个FIN给服务端自己进入FIN_WAIT_1状态这时等待接收服务端报文该报文会有三种可能
只有服务端的ACK只有服务端的FIN基于服务端的ACK又有FIN
5、常用的TCP端口号及其功能
端口协议说明21FTPFTP服务器所开放的控制端口23TELNET用于远程登录可以远程控制管理目标计算机25SMTPSMTP服务器开放的端口用于发送邮件80HTTP超文本传输协议110POP3用于邮件的接收
二、UDP协议介绍无连接不稳定快
1、UDP协议
工作在传输层提供不可搞得网络访问无连接有限的错误检查传输性能快无数据恢复特性 telnet协议明文传输远程管理协议。探测远端服务器的端口是否打开
命令 telnet IP地址 端口号服务软件是否正常
2、常用的UDP端口号及其功能
端口协议说明69TFTP简单文件传输协议111RPC远程过程调用123NTP网络时间协议