TCP通信
1.流式套接字与数据报套接字的区别:
1.数据报套接字:每一包数据传输的目的可能不同,所以每一包需要单独处理(MTU:1500)
2.流式套接字:数据以流的形式连续的传输,有可能产生数据粘连,解决方式(固定长度、数据包间设定间隔
2.TCP包头组成
TCP包头组成:20个字节(源端口号、目的端口、序列号、确认号、校验和、标志位、滑动窗口大小、紧急指针
序号 :发送数据的编号(本次发送的序号,为上次收到的确认号 )
确认号 :接收到数据的编号(只有当ACK为1时,该位有效)、确认号即想要让对方下次发送数据的序号(本次发送的确认号,为收到的序号 + 实际接收到的数据长度)
数据偏移:拆包组包过程中标识该包的偏移量
标志位:
SYN:请求应答
ACK:确认应答
FIN:结束连接
RST:重置连接
PSH:数据包
URG:加急
窗口: 滑动窗口,用来完成流量控制和拥塞控制
滑动窗口:用来控制接收和发送窗口的大小,来实现对流量的控制
3.TCP可靠性的机制
三次握手、四次挥手、传输过程中保障数据传输完整性
4.TCP和UDP的区别
1.TCP复杂的、UDP简单的
2.TCP用资源带宽较大、UDP占用资源带宽较小
3.TCP是面向连接的,UDP是无连接的
HTTP协议
1.基本概念
HTTP超文本传输协议,应用层
超文本传输协议:规定用户如何从万维网中拿取到一个超文本文件
万维网:大型的信息联网存储所
统一资源定位符:简称URL
协议://主机:端口号/资源路径
协议:https 加密
http 非加密
主机:IP地址
端口号: http: 80
https: 443
资源路径: 默认为 / 主页
2.传输过程
1.使用TCP建立连接
2.发送HTTP请求报文
3.回复HTTP响应报文
4.关闭连接
3.报文格式
|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| HTTP请求报文格式: 方法 资源路径 HTTP版本号\r\n 首部字段名:值\r\n ...\r\n \r\n 请求报文正文 HTTP响应报文格式: HTTP版本号 状态码 短语\r\n 首部字段名:值\r\n ...\r\n \r\n 响应报文正文 |