计算机网络
网络七层架构
OSI模型: 七层
TCP/IP模型: 应用层,传输层,网络层,数据链路层,物理层 五层
层 | 简述 |
---|---|
物理层 | 将上层信息编码成电流脉冲信号用于网上传输,不处理错误 |
数据链路层 | 确定网络数据包的形式,加入了物理编码,网络拓扑,错误校验,流量控制等特征 |
网络层 | 源和终点之间建立链接,需要路由确定计算机位置,IP协议 |
传输层 | 向高层提供端对端的网络数据流服务,端口-端口,TCP/UDP协议 |
会话层 | 建立、管理和终止表示层与实体之间的通信会话,建立一个连接 |
表示层 | 用于应用层数据编码和转化,确保一个系统应用层发送的信息,可以被另一个系统应用层识别 |
应用层 | 规定数据的传输协议:HTTP-80/HTTPS-443 |
TCP与UDP
TCP/IP原理
TCP:Transmission Control Protocol,传输控制协议,面向连接,安全可靠的运输层协议
UDP:User Data Protocol,用户数据报协议,不建立连接,可以一对多,尽最大努力交付,不保证。比如ping命令测试
区别:
TCP | UDP |
---|---|
基于连接 | 无连接 |
要求系统资源多 | 少 |
结构复杂 | 结构简单 |
流模式 | 数据报模式,多为短消息 |
保证数据正确性,可靠 | 可能丢包,不可靠 |
保证数据顺序 | 不保证 |
TCP和UDP的使用场景
如何让UDP实现可靠传输
TCP建立连接: 三次握手【阿里,字节】
TCP报文首部
- 源端口和目的端口
- 序号Sequence:TCP传输的字符流中每个字节按顺序标号,保证有序
- 确认号ack: 下一个期望收到的报文第一个字节序号
- 确认ACK: 仅当ACK=1时,确认号字段才有效,规定当建立连接后所有报文传输ACK=1
- 同步SYN: 建立连接时同步序号,当SYN=1,ACK=0表明连接请求报文,若对方同意,则响应报文SYN=1,ACK=1
- 终止FIN: 释放连接,FIN=1表示报文发送方数据发送完毕,要求释放
三次握手过程
目的:使数据包的发送和接受同步
特点: SYN同步位只有在TCP连接时才置1,连接成功后置0
四次挥手过程【阿里】
数据传输完毕后,双方都可释放连接。最开始的时候,客户端和服务器都是处于ESTABLISHED状态,然后客户端主动关闭,服务器被动关闭。
Q1: TCP连接的特点,如何保证连接的安全可靠【阿里4】
TCP是面向连接的安全可靠的传输层协议。
TCP的安全可靠是通过确认重传机制实现的,在滑动窗口协议中,接收窗口会在连续收到的包序列中的最后一个包向接收端发送一个ACK,当网络拥堵的时候,发送端的数据包和接收端的ACK包都有可能丢