TCP/IP概述
程序员文章站
2022-03-11 08:27:28
...
什么是互联网
俩个以太网段通过路由器相连起来就是互联网
关联
互联网的协议就是tcp/ip,tcp/ip为互联网而生
具体含义
见名知义,很多人认为 tcp/ip协议就是 tcp和ip协议,其实不然。tcp/ip协议其实是利用ip进行网络通信过程中所依赖的协议的统称,包括 TCP ,IP,UDP,ICMP,ARP等协议
分层模型
硬件 ------》网络接口层(驱动) --------》互联网层(ip)------》传输层(tcp。UDP等)-------》应用层(ssl,ssh,http....)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YMDe7iUT-1591496184776)(D:/HONOR%20Magic-link/Screenshot/capture_20200607093633523.bmp)]
各层作用概述
-
硬件
负责真正的传输
-
网络接口层
利用数据链路进行通信,通过驱动将os与硬件相连
-
互联网层
使用ip协议,ip协议基于ip地址进行转发数据包。 ip协议将数据包发送到目标主机。主机和路由器必须都实现ip的功能, 这样包在传递的过程中就可以依据ip地址按照路线进行发送
-
传输层
保障端对端的通信的可达性,通过端口号实现应用程序的通信。 TCP: 面向有连接的传输协议,在发送数据包的时候,必须和目标主机建立连接,它可以保障俩主机之间通信的可达性,和包传输过程中 丢包,包传输顺序乱,网络拥堵等问题 UDP: 面向无连接的传输协议,发送数据不会关注对方是否接受到包,适用于多媒体领域
-
应用层
相当于 osi模型中的 应用层,表示层,会话层
包传输过程简述
包在经过每一层时,该层会在包的首部加上必要的信息
-
应用层处理
以 b/s架构为例,客户端发送的请求,按照 http协议的格式,请求体,请求报文等格式封装,
按照utf-8等编码格式编码
传递给下一层 -
传输层
传输层将上一层的数据当成自己的数据,添加数据首部。 以TCP为例 添加 本机应用程序所用端口号和目标机应用程序端口号以实现应用程序的通信 添加 序号:用以表明包中哪部分是数据 添加 校验和:用来判断数据是否完整
-
互联网层
ip将传输过来的tcp首部和tcp数据当成自己的数据,然后添加首部信息,包括接收端ip和发送端ip,随后是用来判断数据是tcp还是upd的信息。生成ip包后,由路由控制表来决定传输的路径
-
网络接口层
为上一层的数据添加 头部信息。包括 接收端的 mac地址,发送端的mac地址,标志以太网类型的信息等。交给数据链路进行发送
接收包的处理
-
网络接口层
通过包解析出 mac地址确认是否为发送给自己的包,如果是接受, 如果不是丢弃,然后根据头部信息判断数据类型。 如果是ip类型,交给 ip模块处理。 如果不是ip是其他的 ARP的协议,将数据传给 APR处理。如果无法识别丢弃
-
ip处理
查看数据头部的ip地址,检查是否发送给自己, 然后根据头部信息查看上一层的协议。tcp则给tcp处理, UPD则给 UPD处理
-
tcp处理
根据数据包中的 校验值查看数据是否完整, 根据序号查看包是否按顺序发送, 根据端口确认通信的应用程序。数据接受完毕返回给发送端一个确认回执,弱回执未到达发送端则发送端会一直发送数据
-
应用处理