1、TCP/IP模型有哪几层?
应用层
应用层只需关注给用户提供的功能,当两个设备需要进行通讯的时候,只需要把要发送的数据发送给传输层即可。
位于应用层的协议有:HTTP、HTTPS、DNS等。
传输层
传输层是为应用层提供网络支持的,传输层有两个传输协议:TCP和UDP
- TCP:大部分应用用的正是TCP协议,如HTTP。相对于UDP协议,TCP协议多了很多特性:流量控制、超时重传、拥塞控制等,而这些都是为了保证数据能有效的传给对方。
- UDP:只负责发送数据包,不负责接收方是否能收到。其实时性更好,效率更高。
一般来说,应用层给的数据会很大,所以传输层会进行分段操作,将数据切分成一个个数据段;另外会给每个TCP段都加上一个TCP头部,头部包含了发送方和接收方的端口号,用于确定是哪个应用发送的、以及是哪个应用接收。
网络层
网络层最常用的协议是ip协议
传输层包装好的TCP段(或者UDP段)会传给网络层,若tcp段太大,则会进行切分操作,将其分为一份份的数据包,网络层会给每个数据包都加一个ip头部,ip头部包含了源地址和目标地址的ip地址。
IP协议
ipv4:32位。每8位是一段(0-255),共四段(如192.168.100.1)。
ip地址用于区分设备的,但世界上设备太多,一个一个匹配不现实,于是通过ip需要能识别到设备的网络号和主机号:
- 网络号:用于识别该主机属于那个子网
- 主机号:改子网下具体哪个设备
而通过ip要知道设备的网络号和主机号还需要配合掩码使用。如ip:10.100.122.0、掩码:255.255.255.0:
- ip与掩码按位与运算,得到网络号
- 掩码取反,然后与ip按位与运算,得到主机号
ip的作用有两个:寻址和路由。
- 寻址就是找到目标子网和目标设备
- 路由:知道的目标子网和目标设备后,要通过网络送达对方,但是网络上路径很多很多、具体怎么选择路径就是路由负责的
网络接口层(链路层)
接受网络层的数据包,然后加上MAC头部封装成数据帧。
MAC地址:设备在生产时就设置好的
MAC头部中包含了发送方和接收方的MAC地址,发送方自身的MAC地址容易获取、而对于接收方的MAC地址,则是通过ARP协议获取的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)