TCP/IP协议栈的工作方式

TCP/IP 协议栈的工作方式

问的也就是HTTP 协议利用 TCP/IP 协议栈传输数据的过程。HTTP协议利用TCP/IP协议栈传输数据分为发送和接受。

  1. 发送过程:通过协议栈逐层向下,每一层都添加该层的专有头,逐层打包,由下层把数据发送出去。

    1. 浏览器显示了一个页面,你点击了一个链接,浏览器使用应用的端口号发起一个HTTP请求

    2. 然后加TCP头,记录了源端口号和目的端口号(一般是80)

    3. 然后加IP头,记录源IP地址和目标IP地址

    4. 然后加MAC头,记录下源MAC地址和目标MAC地址

    5. 然后就通过下层的网口发送出去了

  2. 接受过程:通过协议栈逐层向上,每一层都拆掉该层的专有头,逐层拆包,由上层接收本来的数据。

    1. 一个网口经过了一个网络包,把它拿进来交给网络包处理程序来处理

    2. 拆掉二层头,看看MAC地址跟自己的是不是相符,如果不相符,那不管它;如果MAC地址相符,继续拆三层头

    3. 拆掉三层头,看看IP地址跟自己的是不是相符,如果不相符,说明自己只是这个数据包的一个中转站,那我们把MAC地址更改,转发出去;如果IP地址相符,根据IP头里的标示知道四层是TCP地址还是UDP地址,我们假设是TCP的

    4. 拆掉四层头,看看这是个请求还是应答还是一个正常的数据包,如果是发起或应答那可能接下来要发一个回复包;如果是一个正常的数据包,就要交给上层来处理,网络包处理程序是不能拆七层头的,那么根据TCP头里的端口号交给对应的应用

    5. 应用拿到数据包想做什么处理就做什么处理,那就是应用的事了,比如说这个应用是浏览器,那浏览器当然是解析数据包(假设里面传送的是HTML),然后把页面显示出来

MAC地址的局限性和IP地址的连接性:因特网把各种网络连接起来,每个网络都使用不同的MAC地址,如果异构网络要互相通信就必须进行复杂的MAC地址转换工作,于是统一的IP地址把这个复杂问题解决了。IP地址本质上是终点地址,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。

#Java开发##学习路径#
全部评论
网络这块太复杂了
点赞 回复 分享
发布于 2022-03-11 19:02

相关推荐

评论
5
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务