网络通信深入解析:探索TCP/IP模型

这篇具有很好参考价值的文章主要介绍了网络通信深入解析:探索TCP/IP模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  http协议访问web

        你知道在我们的网页浏览器的地址当中输入url,未必是如何呈现的吗?

        web浏览器根据地址栏中指定的url,从web服务器获取文件资源(resource)等信息,从而显示出web页面。web使用HTTP(超文本传输协议)的协议作为规范,完成从客户端从服务器端等一系列的运作流程。了解HTTP,我们有必要事先了解一下TCP/IP传输。

网络通信深入解析:探索TCP/IP模型,==========前端=========,tcp/ip,网络协议,网络,前端

        发送端在层与层之间传输数据时,每层就会被打上一个该层所属的首部信息,反之,接收端在层与层传输数据时,每经过一层就会把对应的首部消去。这种吧数据包装起来的做法称为封装。

TCP报文的首部格式

        在介绍TCP连接之前先介绍下TCP的报文,TCP报文是面向字节流的,分为首部和数据两部分,TCP首部如下所示,固定20字节:

网络通信深入解析:探索TCP/IP模型,==========前端=========,tcp/ip,网络协议,网络,前端

  • 源端口和目标端口:各占2字节
  • 序号seq:标记报文段的顺序,值代表该报文段所携带的数据的第一个字节的编号
  • 确认号ack:占4个字节,表示期望收到对方下一个保温段的第一个字节的序号
  • 确认标志位ACK:ACK=1时,ack才有效
  • 同步标志位SYN:建立TCP连接时用的同步序号。当SYN = 1时,ACK = 0时表示:这是一个连接请求报文段。若同意连接,则相应报文中使得SYN = 1,ACK = 1。SYN这个表示位只有在TCP连接时才会被置为1,握手完成后SYN标志位置为0。
  • 终止标志位FIN:表示要释放一个连接。FIN = 1表示报文的发送方的数据已经发送完毕,要求释放连接。与SYN的作用刚好相反。
     

tips:ACK、SYN、FIN这些大写的单词都表示标志位,要么置为1,要么置为0;而ack、seq小写单词表示序号。

三次握手

        HTTP属于应用层、TCP属于传输层、IP属于网络层。客户端和服务器端都需要知道各自可收发,因此需要三次握手。如下图所示:

网络通信深入解析:探索TCP/IP模型,==========前端=========,tcp/ip,网络协议,网络,前端

  1. 第一次握手:服务器器知道客户端具有发送能力(SYN=1)
  2. 第二次握手:客户端知道服务器具有接受和发送的能力,但是服务器不知道客户端是否具有接受能力,所以需要第三次握手(ACK=1,SYN=1)
  3. 第三次握手:服务器端知道客户端具有接受能力了,之后开始通信(ACK=1)

三次握手过程可以携带数据吗

  • 第一次、第二次还不能携带数据,因为还没有建立连接,会让服务器容易受到攻击
  • 第三次握手时候客户端已经处于已建立连接的状态,并且已经知道服务器端的收发能力所以可以携带数据。

四次挥手

  1.  客户端要求断开连接,发送FIN:断开连接请求
  2. 服务器端接受到请求,返回給客户端ACK,作为FIN响应
  3. 这个时候服务器不能立马传递给服务器FIN,服务器需要确认之前发送的消息都已经处理完毕得到ACK之后再断开。因此断开连接不能像握手一样两跳信息合并。所以服务器需要经过一个等待,确定可以关闭连接了之后再发送一条FIN给客户端
  4. 客户端收到服务器的FIN,同时客户端也可能有自己的事情处理完,比如客户端没有接收到服务器端的ACK请求,客户端处理完成后再给服务器端发送ACK

网络通信深入解析:探索TCP/IP模型,==========前端=========,tcp/ip,网络协议,网络,前端

为什么需要四次挥手

        只有服务器端的服务器发完之后才会给客户端发送FIN断开请求,告诉客户端可以断开连接了,所以需要四次挥手。

  • 收到FIN仅仅代表客户端没有数据发送给客户端了,但是客户端可能还有未处理完毕的信息
  • ACK分开发送的,所以需要等待一段时间处理完毕信息,再断开连接,发送FIN给客户端告知客户端可以断开连接,客户端收到ACK之后才会断开

参考

图解http

前端进阶之旅

TCP的三次握手与四次挥手_关于tcp三次握手正确的是fin是终止_crazy的蓝色梦想的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-723773.html

到了这里,关于网络通信深入解析:探索TCP/IP模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络通信】探索UDP与TCP协议、IP地址和端口号的奥妙

    🌺 个人主页: Dawn黎明开始 🎀 系列专栏: 网络奇幻之旅 ⭐ 每日一句:往前走,朝着光 📢 欢迎大家:关注 🔍 +点赞 👍 +评论📝+收藏⭐️ 文章目录 📋前言 一.网络通信 1.1网络通信协议 1.2TCP/IP协议中的四个层次 二.UDP协议 2.1定义 2.2UDP连接的交互过程 三.TCP协议 3.1定义

    2024年02月05日
    浏览(19)
  • Java中网络的基本介绍。网络通信,网络,ip地址,域名,端口,网络通信协议,TCP/IP传输过程,网络通信协议模型,TCP协议,UDP协议

    - 网络通信 概念:网络通信是指 通过计算机网络进行信息传输的过程 ,包括数据传输、语音通话、视频会议等。在网络通信中,数据被分成一系列的数据包,并通过网络传输到目的地。在数据传输过程中,需要确保数据的完整性、准确性和安全性。常见的网络通信协议有T

    2024年02月10日
    浏览(29)
  • 【netty系列-01】深入理解网络通信基本原理和tcp/ip协议

    Netty系列整体栏目 内容 链接地址 【一】深入理解网络通信基本原理和tcp/ip协议 https://zhenghuisheng.blog.csdn.net/article/details/136359640 【二】深入理解Socket本质和BIO https://zhenghuisheng.blog.csdn.net/article/details/136549478 在最初的网络中,是借鉴于这个OSI七层网络模型,而在实际开发应用中

    2024年03月17日
    浏览(29)
  • 理解网络通信的基础:OSI七层模型与TCP/IP五层模型

    在今天的数字化世界中,网络通信已经成为我们日常生活和商业活动的重要组成部分。为了更好地理解和管理网络通信,网络工程师和管理员使用不同的模型来组织和解释网络协议和通信过程。本文将介绍两种最重要的网络模型:OSI七层模型和TCP/IP五层模型。 OSI(开放系统互

    2024年02月07日
    浏览(22)
  • 【网络奇缘】- 计算机网络|分层结构|深入探索TCP/IP模型|5层参考模型

    ​ 🌈个人主页:  Aileen_0v0 🔥系列专栏:  一见倾心,再见倾城  ---  计算机网络~ 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\" 目录 OSI参考模型与TCP/IP参考模型相同点 OSI参考模型与TCP/IP参考模型不同点 面向连接三阶段(建立,传输,释放) 面向无连接(直传) 通用的5层参考

    2024年02月05日
    浏览(23)
  • 【网络编程】网络通信基础——简述TCP/IP协议

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得,欢迎大家在评论区交流讨论💌 ip地址简单来说就是用来描述网络上一个设备的所在位置。 端

    2024年02月04日
    浏览(24)
  • 【计网】TCP协议安全与风险:深入探讨网络通信的基石

       🍎 个人博客: 个人主页 🏆 个人专栏: Linux ⛳️   功不唐捐,玉汝于成 目录 🌐前言 🔒正文 TCP (Transmission Control Protocol): UDP (User Datagram Protocol): HTTP (Hypertext Transfer Protocol): HTTPS (Hypertext Transfer Protocol Secure): 🌐结语  我的其他博客 TCP(传输控制协议)是计算机网络中最

    2024年03月10日
    浏览(32)
  • Qt开发-TCP/IP网络通信(以及文件传输)

    TCP/IP通信(即SOCKET通信)是通过网线将 服务器Server端 和 客户机Client端 进行连接,在遵循ISO/OSI模型的四层层级构架的基础上通过TCP/IP协议建立的通讯。控制器可以设置为服务器端或客户端。 关于TCP/IP协议可详看:TCP/IP协议详解 - 知乎 (zhihu.com) 总的来说,TCP/IP通讯有两个部分

    2024年02月10日
    浏览(22)
  • 网络编程day2——基于TCP/IP协议的网络通信

            计算机S                                                 计算机C      创建socket对象                                   创建socket对象      准备通信地址(自己的ip(非公网ip))      准备通信地址                                     (计算

    2024年02月10日
    浏览(28)
  • 网络通信原理TCP字段解析(第四十七课)

                字段 含义 Source Port(源端口号) 源端口,标识哪

    2024年02月12日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包