精华内容
下载资源
问答
  • 常用网络通信协议结构图,打印一张,贴在自己桌上吧,网络工程师必备.
  •  本文就计算机网络通信协议、选择网络通信协议的原则、TCP/IP 通信协议的安装、设置和测试等,作进一步的研究和探讨。  1 网络通信协议  目前,局域网中常用的通信协议主要有:NetBEUI 协议、IPX/SPX兼容协议和...
  • 网络通信HTTP协议

    引言

    在当今互联网爆发的大时代,无论是Web程序还是App抑或是各种云服务等等要想发挥自身的价值都离不开网络,而理解程序之间通信的基本协议对于我们开发者来说相当重要,也是进阶的必经之路,这篇文章就好好总结下我们最熟悉的HTTP协议。

    一、HTTP概述

    1、HTTP的发展历程

    HTTP(HyperText Transfer Protocal)超文本协议,用于定义万维网上各种超链接之间的通信规则,HTTP本身是无连接的,但是内部使用的是面向连接的TCP保证了数据的可靠传输,它的发展也是经历了几个历程,目前主流的还是HTTP/1.1。
    在这里插入图片描述

    2、HTTP协议的主要特性

    • 支持C/S(客户端/服务器)模式——HTTP协议由两部分程序实现,一个客户端和一个服务器程序,通过交互HTTP报文进行通信
    • 简捷快速——客户端向服务器发起请求的时候,只需要传递请求方法和路径即可,
    • 灵活——HTTP允许传输任意类型的数据对象,简单数据如纯文本、字符串等,复杂如二进制、流等等,只需要设置正确的Content-Type标示。
    • 无连接——即限制每次连接只处理一个HTTP请求,当服务器处理客户的请求并接收到客户的响应之后,立即断开连接,以节省传输时间。
    • 无状态——因为HTTP服务器并不保存关于客户机的任何信息,即无状态协议。

    3、HTTP的基本运作方式

    HTTP运作是以事务为原子单位的,所谓事务即一个HTTP事务由一条HTTP请求(由客户端发往服务端)和一条响应(服务器接收到来自客户端的请求响应处理并发回给客户端),与数据库中的事务的概念类似,只有两条操作都完成之后才算成功。
    这里写图片描述

    4、HTTP 请求解析流程概述

    • 首先经过DNS 协议映射到对应的IP地址
    • 再经过TCP协议分割,并按照序列号可靠发出
    • 借助IP协议,,通过路由器得到对应的接收IP地址
    • 然后经过TCP协议接收分割后得到的报文段并重组
    • 最终经过HTTP协议,返回服务器处理报文后的资源。

    二、URI和URL

    URI(Uniform Resource Identifiers),全称统一资源标识符,用于标志分布在整个因特网上的万维网文档,而URL(Uniform Resource Locator)统一资源定位符,

    1、HTTP URI格式

    形如:“http:” “//” hostname [ “:” port] [ biz_path ["?" query_params]]

    • hostname:主机域名(主机Ip地址),必填
    • port:端口号,非必须,若不填默认为80
    • biz_path:业务路径,非必须
    • query_params:查询串,GET请求的时候直接附在上面的参数,形如?user=cmo&pwd=crazy

    2、HTTP URI 匹配原则

    一般情况下在进行URI匹配时候必须按照大小写敏感的规范逐一字节进行对比,但以下情况除外:

    • 端口号为空或未给出的默认为80
    • hostname 不区分大小写
    • 协议名需要区分大小写,即http与HTTP不同,不过在有些浏览器会自动转成小写的
    • biz_path为空相当于"/"
    • 不属于保留或者不安全的字符相当于"%HEX HEX"格式的编码

    3、 使用HTTP URI访问的基础流程

    这里写图片描述
    我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器, 浏览器解析Response中的HTML,这样我们就看到了网页
    假设以浏览器访问http://www.crazy.com/index.html为例,经历以下步骤:

    • 浏览器器解析URI,确认是有效的URI
    • 向DNS服务器发起解析hostname——http://www.crazy.com的IP地址,再解析出端口号
    • 紧接着DNS服务器返回IP,假设为8.8.8.8
    • 接着浏览器与服务器(8.8.8.8)建立TCP连接
    • 然后浏览器发起获取文件的请求报文: GET /index.html Host: www.crazy.com
    • 服务器接受请求并给出响应报文
    • 最后释放掉TCP连接,浏览器显示文档

    4、URL的基本语法

    形如: schemal " : //" “internet adress” [:port] “/resource_file_name

    • schemal:表面访问资源所采用的协议,比如http、ftp、smtp等。
    • internet adress:服务器的因特网地址
    • port:端口号,默认为80
    • resource_file_name:完整的资源名带完整路径

    几乎所有的URI都是URL。

    5、连接和端口号

    HTTP是个应用层协议,无需操心网络通信的具体细节,具体工作实际上是由底层的TCP/IP协议完成通信的,HTTP报文是通过TCP协议连接从一个地方传输到另一个地方去的。而在HTTP客户端向服务端发送报文之前,需要使用网际协议IP地址和端口号在两者之间建立一条TCP/IP连接,而TCP连接中,必须要知道对应的IP地址以及服务器上运行特定软件相关的TCP端口号

    6、HTTP/1.1持久连接

    HTTP/1.1逐渐停止了对keep-alive连接的支持,取代的是一种名为持久连接(persistent-connection),达到的效果是一样的,但机制更优些。与HTTP/1.0的keep-alive连接不同,HTTP/1.1持久连接默认是激活的,除非特别指明。否则HTTP/1.1假定所有连接都是持久的,要在事务处理结束之后将连接关闭,HTTP/1.1应用程序必须向报文中显示添加上一个Connection:close首部字段,否则HTTP/1.1客户端在收到响应之后,连接依然维持在打开状态,但是客户端和服务器是可以随时关闭空闲的连接的,而且不发送Connection:close也并不是意味值服务器永远将连接保持在打开状态。
    这里写图片描述

    三、媒体资源类型MIME

    由于因特网上有很多种不同类型的数据、资源,HTTP为了区分正确处理不同的传输对象,因此需要标记传输对象的类型,即MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展) ,最初MIME是用于在邮件系统中表示不同类型的邮件的,HTTP借鉴并用来标记多媒体类型,在开发中比较常见的MIME类型

    MIME 文档
    text/html HTML格式的文本文档
    text/plain 普通的ASCII文本文档
    image/jpg JPEG版本的图片
    image/gif GIF格式的图片
    video/quicktime Apple的QuickTime视频
    application/vnd.ms-powerpoint PPT格式的文档

    四、HTTP请求命令

    请求命令又可以叫做方法,每条HTTP报文都会包含一个方法,这些方法的将会协助服务器针对不同的方法进行不同的处理,比如说说获取一个Web页面、运行一个网管程序、删除一个文件等等,常见的有以下5种:

    方法 说明
    GET 从服务器向客户端发送命名资源
    POST 将客户端数据发送到一个服务器网关应用程序
    PUT 将来自客户端的数据存储到一个命名的服务器资源中去
    HEAD 仅发送命名资源响应中的HTTP报文的首部
    DELETE 从服务器中删除命名资源

    五、状态码

    HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别

    • 1XX ——提示信息 - 表示请求已被成功接收,继续处理

    • 2XX—— 成功 - 表示请求已被成功接收,理解,接受

    • 3XX —— 重定向 - 要完成请求必须进行更进一步的处理

    • 4XX —— 客户端错误 - 请求有语法错误或请求无法实现

    • 5XX —— 服务器端错误 - 服务器未能实现合法的请求
      在这里插入图片描述

    六、HTTP报文

    HTTP是通过报文来传输数据的,因而HTTP请求从一定程度上来说是不安全的,而HTTP报文本质上是一行行的简单文本格式的字符串构成的格式化文本,每一行都以两个字符——\r回车符(ASCII码13)和\n换行符(ASCII码 10)来组成的行终止标记序列CRLF
    在这里插入图片描述
    通常按照HTTP报文的类别又可以分为两种类型:请求报文和响应报文,不过两种报文基本机构大同小异都包含三大部分:起始行首部主体
    在这里插入图片描述

    1、起始行

    起始行即报文的第一行,按照不同类别功能不一样:

    1.1、请求行

    在请求报文中请求行使用形如:< method > < request-url > < http-version > 格式用于说明这个请求要做些什么。

    1.2、响应行

    在响应报文中则是使用形如:< http version > < status-code > < respon-phrase > 用于表示服务器对请求的响应状态及结果。

    2、首(头)部

    首(头)部是用于标示主体数据的主机、类型、长度等信息的键值对, 起始行后面可以有一个或者多个首部字段(必须包含Host:xx),每个字段包含一个键和一个值,键值之间用冒号(:)来分隔连接(冒号之后是可以有一个空格),首部以一个空行CRLF结束,当然首部也可以分为多行来描述,但多出来的每行前面必须要有一个空格或者TAB符
    在这里插入图片描述

    3、主体

    首部下的空行之后就是报文主体,在请求报文中则包含了所有要发给服务器的各种类型的数据;而在响应报文中则是装载了要返回给客户端的数据。总之,报文的主体就是一个由任意数据组成的数据块,但并不是所有的报文都包含实体的主体部分,有些报文也可以单纯以一个CRLF结束。值得注意的是,起始行和首部都是纯文本形式且结构化的,而主体则可以包含任意的数据——纯文本和二进制数据(比如图片、视频、音轨、软件程序等等),最后与起始行和首部都不同,主体也还可以为空,一般来说Get的请求报文的主体可以为空,而Post请求则会把参数以类似请求头的K-V形式存在请求报文的主体中。

    最后请看下以下实例的报文图:
    在这里插入图片描述
    VS
    在这里插入图片描述
    当在解析请求的时候可能没有Content-Length而是遇见的Transfer-Encoding响应头,主要有编码方式:

    • Transfer-Encoding: chunked——数据以一系列分块的形式进行发送。 Content-Length 首部在这种情况下不被发送。。在每一个分块的开头需要添加当前分块的长度,以十六进制的形式表示,后面紧跟着 ‘\r\n’ ,之后是分块本身,后面也是’\r\n’ 。终止块是一个常规的分块,不同之处在于其长度为0。终止块后面是一个挂载(trailer),由一系列(或者为空)的实体消息首部构成。
    • Transfer-Encoding: compress——采用 Lempel-Ziv-Welch (LZW) 压缩算法。这个名称来自UNIX系统的 compress 程序,该程序实现了前述算法。
      与其同名程序已经在大部分UNIX发行版中消失一样,这种内容编码方式已经被大部分浏览器弃用,部分因为专利问题(这项专利在2003年到期)。
    • Transfer-Encoding: deflate——采用 zlib 结构 (在 RFC 1950 中规定),和 deflate 压缩算法(在 RFC 1951 中规定)。
    • Transfer-Encoding: gzip——表示采用 Lempel-Ziv coding (LZ77) 压缩算法,以及32位CRC校验的编码方式。这个编码方式最初由 UNIX 平台上的 gzip 程序采用。处于兼容性的考虑, HTTP/1.1 标准提议支持这种编码方式的服务器应该识别作为别名的 x-gzip 指令。
    • Transfer-Encoding: identity——用于指代自身(例如:未经过压缩和修改)。除非特别指明,这个标记始终可以被接受。

    七、服务器解析HTTP请求的基本流程

    一般情况下,无论是小型服务器还是大型先进的商用服务器的业务流程都差不多:建立连接——>接收请求——>处理请求——>访问资源——>构造响应——>发送响应——>记录事务处理过程

    1、建立连接

    如果客户端已经打开了一条道服务器的持久连接,可以使用那条连接来发送它的请求,否则客户端需要打开一条新的到服务器的连接。当客户端发起一条到服务器的TCP连接时,服务器就会建立连接,并判断连接的另一端是哪个客户端,从TCP连接中将IP地址解析出来,一旦新连接建立起来并被接受,服务器就会自动将新连接添加到服务器连接列表中。

    2、接受请求并解析HTTP报文

    连接上有数据到达时,服务器会从网络连接中读取数据,并将请求报文的内容解析出来。在解析请求报文的时候,服务器还会不定期地从网络上接收输入数据。

    • 首先解析请求行,查找请求方法、指定的资源标识符(URL)以及版本号,各项之间由一个空格分隔,并以一个回车换行(CRLF)序列作为行的结束标志。
    • 接着读取以CRLF结尾的报文首部
    • 再接着检测到以CRLF结尾的、标志首部结束,主体开始的空行。
    • 再解析长度(如果设置了Content-Length),读取请求主体。
      这里写图片描述

    3、访问报文中指定的资源

    4、构建并发送响应

    一旦服务器识别出来资源,就会执行请求方法中对应的动作并响应报文,一般报文中包含有响应状态码、响应首部,响应主体。值得注意的是服务器并不是每次都一定会返回成功的报文,有时候也会返回重定向响应(由响应码3xx表示),重定向响应可以使得度武器将浏览器重定向到其他地方执行请求。

    PS:下一篇使用原始Sockect 发送Http请求。

    展开全文
  • 常用的通信协议

    2014-04-06 20:29:00
    常用的三个网络协议 网络中不同的工作站,服务器之间能传输数据,源于协议的存在。随着网络的发展,不同 的开发商开发了不同的通信方式。为了使通信成功可靠,网络中的所有主机都必须使用同 一语言,不能带有方言。...
    常用的三个网络协议 
    网络中不同的工作站,服务器之间能传输数据,源于协议的存在。随着网络的发展,不同
    的开发商开发了不同的通信方式。为了使通信成功可靠,网络中的所有主机都必须使用同
    一语言,不能带有方言。因而必须开发严格的标准定义主机之间的每个包中每个字中的每
    一位。这些标准来自于多个组织的努力,约定好通用的通信方式,即协议。这些都使通信
    更容易。
    已经开发了许多协议,但是只有少数被保留了下来。那些协议的淘汰有多中原因---设
    计不好、实现不好或缺乏支持。而那些保留下来的协议经历了时间的考验并成为有效的通
    信方法。当今局域网中最常见的三个协议是MICROSOFT的NETBEUI、NOVELL的IPX/SPX和交叉
    平台TCP/IP。

    一:NETBEUI
    NETBEUI是为IBM开发的非路由协议,用于携带NETBIOS通信。NETBEUI缺乏路由和网络
    寻址功能,既是其最大的优点,也是其最大的缺点。因为它不需要附加的网络地址和网
    络层头尾,所以很快并很有效且适用于只有单个网络或整个环境都桥接起来的小工作组环
    境。
    因为不支持路由,所以NETBEUI永远不会成为企业网络的主要协议。NETBEUI帧中唯一
    的地址是数据链路层媒体访问控制(MAC)地址,该地址标识了网卡但没有标识网络。路由
    器靠网络地址帧转发到最终目的地,而NETBEUI帧完全缺乏该信息。
    网桥负责按照数据链路层地址在网络之间转发通信,但是有很多缺点。因为所有的广
    播通信都必须转发到每个网络中,所以网桥的扩展性不好。NETBEUI特别包括了广播通信的
    记数并依赖它解决命名冲突。一般而言,桥接NETBEUI网络很少超过100台主机。
    近年来依赖于第二层交换器的网络变得更为普遍。完全的转换环境降低了网络的利用
    率,尽管广播仍然转发到网络中的每台主机。事实上,联合使用100-BASE-T Ethernet,允
    许转换NetBIOS网络扩展到350台主机,才能避免广播通信成为严重的问题。

    二:IPX/SPX
    IPX是NOVELL用于NETWARE客户端/服务器的协议群组,避免了NETBEUI的弱点。但是,
    带来了新的不同弱点。
    IPX具有完全的路由能力,可用于大型企业网。它包括32位网络地址,在单个环境中允
    许有许多路由网络。
    IPX的可扩展性受到其高层广播通信和高开销的限制。服务广告协议(Service Adver
    tising Protocol,SAP)将路由网络中的主机数限制为几千。尽管SAP的局限性已经被智能路
    由器和服务器配置所克服,但是,大规模IPX网络的管理员仍是非常困难的工作。

    三:TCP/IP

    每种网络协议都有自己的优点,但是只有TCP/IP允许与Internet完全的连接。TCP/IP
    是在60年代由麻省理工学院和一些商业组织为美国国防部开发的,即便遭到核攻击而破坏
    了大部分网络,TCP/IP仍然能够维持有效的通信。ARPANET就是由基于协议开发的,并发展
    成为作为科学家工程师流媒体的Internet。
    TCP/IP同时具备了可扩展性和可靠性的需求。不幸的是牺牲了速度和效率(可是:TCP
    /IP的开发受到了政府的资助)。
    Internet公用化以后,人们开始发现全球网的强大功能。Internet的普遍性是TCP/IP
    至今仍然使用的原因。常常在没有意识到的情况下,用户就在自己的PC上安装了TCP/IP栈
    ,从而使该网络协议在全球应用最广。
    TCP/IP的32位寻址功能方案不足以支持即将加入Internet的主机和网络数。因而可能
    代替当前实现的标准是IPv6

     

     

    转自: http://zhidao.baidu.com/link?url=93ahdp0YYd2UdatkTRb0VrNFYnM_Gt9VTbHQotasWB2gYiohBNKGBAI0dJE_dtU_BN_6M5YJ-Sfjd398_7NhnK

     

    转载于:https://www.cnblogs.com/fangkuai/p/3649188.html

    展开全文
  • 计算机网络通信常用的相关协议

    千次阅读 2018-07-20 14:42:47
     TCP/IP是基于TCP和IP这两个最初协议之上不同的通信协议的大集合  TCP是传输控制协议,用于从应用程序到网络的数据传输控制,负责在数据传送之前将它们分割为 IP 包,然后在它们到达时候将它们重组。  IP...

    1、TCP/IP(Transmission Control Protocol /Internet Protocol)协议

      TCP/IP是基于TCP和IP这两个最初的协议之上的不同的通信协议的大集合

      TCP是传输控制协议,用于从应用程序到网络的数据传输控制,负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。

      IP是网际协议,负责计算机之间的通信,负责在因特网上发送和接收数据包。

    2、HTTP(Hyper Text Transfer Protocol)协议

      HTTP协议是超文本传输协议(Hyper Text Transfer Protocol),负责 web 服务器与 web 浏览器之间的通信,用于从 web 客户端向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容。

    3、HTTPS(Secure HTTP)协议

      HTTPS协议是安全的HTTP,在HTTP的基础上,增加了SSL(Secure Sockets Layer)协议,也就是安全套接字层,用于为安全数据传输加密数据。

    4、SMTP(Simple Mail Transfer Protocol)协议-----简易邮件传输协议,用于电子邮件的传输。

    5、MIME(Multi-purpose Internet Mail Extensions)协议-----多用途因特网邮件扩展,使 SMTP 有能力通过TCP/IP网络传输多媒体文件,包括声音、视频和二进制数据。

    6、IMAP(Internet Message Access Protocol)协议-----因特网消息访问协议,用于存储和取回电子邮件。

    7、POP(Post Office Protocol)协议-----邮局协议,用于从电子邮件服务器向个人电脑下载电子邮件。

    8、FTP(File Transfer Protocol)协议-----文件传输协议,负责计算机之间的文件传输。

    9、NTP(Network Time Protocol)协议-----网络时间协议,用于在计算机之间同步时间。

    10、DHCP(Dynamic Host Configuration Protocol)协议-----动态主机配置协议,用于向网络中的计算机分配动态 IP 地址。

    11、SNMP(Simple Network Management Protocol)协议-----简单网络管理协议,用于计算机网络的管理。

    12、LDAP(Lightweight Directory Access Protocol)协议-----轻量级的目录访问协议,用于从因特网搜集关于用户和电子邮件地址的信息。

    13、ICMP(Internet Control Message Protocol)协议-----因特网消息控制协议,负责网络中的错误处理。

    14、ARP(Address Resolution Protocol)协议-----地址解析协议,用于通过IP来查找基于IP地址的计算机网卡的硬件地址。

    15、RARP(Reverse Address Resolution Protocol)协议-----反向地址转换协议,用于通过IP查找基于硬件地址的计算机网卡的IP地址。

    16、BOOTP(Boot Protocol)协议-----自举协议,为局域网中的无盘工作站分配动态的IP地址,并不需要没个用户设置静态IP地址。

    17、PPTP(Point to Point Tunneling Protocol)协议-----点对点隧道协议,用于私人网络之间的连接。

    展开全文
  • 网络通信协议

    2020-12-06 18:26:49
    文章目录网络通信协议通信协议分层思想TCP/UDP协议:TCP三次握手四次挥手UDPSocket介绍套接字套接字用途套接字类型流套接字数据包套接字原始套接字 网络通信协议 计算机网络中实现通信必须有一些约定,即通信...

    网络通信协议

    计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、 传输控制步骤、出错控制等制定标准。

    通信协议分层的思想

    由于结点之间联系很复杂,在制定协议时,把复杂成份分解成一些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。各层互不影响,利于系统的开发和扩展。

    TCP/UDP协议:

    传输控制协议TCP(Transmission Control Protocol)

    用户数据报协议UDP(User Datagram Protocol)

    TCP/IP 以其两个主要协议:传输控制协议(TCP)和网络互联协议(IP)而得名,实际上是一组协议,包括多个具有不同功能且互为关联的协议。

    IP(Internet Protocol)协议是网络层的主要协议,支持网间互连的数据通信。

    TCP

    1. 使用TCP协议前,须先建立TCP连接,形成传输数据通道
    2. 传输前,采用“三次握手”方式,是可靠的
    3. TCP协议进行通信的两个应用进程:客户端、服务端
    4. 在连接中可进行大数据量的传输 传输完毕,需释放已建立的连接,效率低
    5. 在断开时要进行“四次挥手”

    三次握手

    TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态;

    第一次握手:TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。

    第二次握手:TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据,但是同样要消耗一个序号。

    第三次握手:TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。

    完成三次握手,当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了。
    在这里插入图片描述

    个人理解
    在这里插入图片描述
    看了这张图我们就能更加加固了对tcp三次握手的记忆

    在这里插入图片描述

    四次挥手

    第一次挥手:客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

    第二次挥手:服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。

    第三次挥手:客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

    第四次挥手:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2[Math Processing Error]∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

    在这里插入图片描述

    个人理解
    在这里插入图片描述
    同样,我们再次加固记忆
    在这里插入图片描述

    UDP

    1. 将数据、源、目的封装成数据包,不需要建立连接
    2. 每个数据报的大小限制在64K内
    3. 因无需连接,故是不可靠的
    4. 发送数据结束时无需释放资源,速度快

    Socket介绍

    套接字(Socket)随着TCP/IP协议的使用,被应用在网络应用程序的构建中。
    当前Socket规范支持两种类型的套接字,即:流套接字和数据报套接字。
    流套接字提供了双向有序且不重复的数据服务。
    数据报套接字对报文的可靠性和有序性并不保证。

    套接字

    套接字:在网络中,由IP地址可以唯一确定一台主机,但是准确来说,网络通讯中的双方并不是主机,而是运行在主机上的进程,这样就需要进一步确定是主机中的哪个进程要进行网络通讯。因此,除了IP地址之外,还需要端口号来唯一确定主机中的通讯进程。IP地址和端口号就构成了一个网络中的唯一标识符,即套接字。
    

    套接字的用途

    Socket被用于客户端/服务端应用框架中。服务端是一个针对客户端的请求执行某些特定操作的进程。大多数应用层协议如FTP、SMTP和POP3使用Socket来建立客户端与服务端之间的连接,从而进行数据的交换。
    

    套接字的类型

    流套接字

    提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。如果你通过流套接字发送三个字符”A, B, C”,它们将会以同样的顺序到达——”A, B, C”,原因在于流套接字使用TCP(传输控制协议)进行数据传输。如果传输失败,发送方将会收到错误提示符。

    数据包套接字

    提供无连接服务。你无需像使用流套接字那样建立一个连接,而只需将目的地址信息一同打包后发送出去。该服务使用UDP(用户数据报协议)进行传输,延迟小且效率高,缺点是不能保证数据传输的可靠性。

    原始套接字

    允许用户对底层通讯协议进行访问。能够对底层的传输机制进行控制,因此可以用原始套接字来操纵网络层和传输层应用。原始套接字并不是给普通用户使用的,它们主要被用于开发新的通讯协议,或是用来获取已有通讯协议的一些隐蔽功能的访问权限。(不常用)

    展开全文
  •  本文就计算机网络通信协议、选择网络通信协议的原则、TCP/IP 通信协议的安装、设置和测试等,作进一步的研究和探讨。  1 网络通信协议  目前,局域网中常用的通信协议主要有:NetBEUI 协议、IPX/SPX兼容协议和...
  • 常用的几种通信协议

    2020-12-08 11:55:43
    网络通信协议 : 速率,传输码率,代码结构,传输控制… 问题大事化小 :分层 TCP/IP协议簇 重要 : TCP :用户传输协议 UDP :用户数据报协议 知名协议 TCP IP : 网络互联协议 TCP / UDP 对比 TCP :打电话 ...
  • 嵌入式相关上位机编写,了解常用通信协议如RS-232、CAN、RS485、I2C等接口及网络通信优先 自己工作有涉及到上位机,主要是串口RS-232,于是跟公司嵌入式工程师请教并学习了上位机通信协议相关一些知识。 1....
  • 网络通信协议简谈

    2020-11-07 13:45:19
    网路通信协议 主要有UDP 与TCP;主流常用TCP;在TCP基础上衍生HTTP;HTTP超文本传输协议主要用于WEB网络通信; 举个栗子: 使用场景:用户在浏览器地址栏输入 www.baidu,com;按回车现百度页面; 实现原理:B/S模式...
  • 智能家居开发中常用的通信协议

    千次阅读 2017-07-03 13:27:44
    基于一个具有连接安全性保障的网络,各种各样的智能设备之间就可以进行信息交互了。为了实现这种交互,设备们需要基于一种统一的语言进行通信,以便双方都能够识别,这种语言在IT领域被称为“通信协议”。
  • 网络编程:  java语言中,提供了一套统一的编程接口。... --常用的通信协议:  (1)TCP/IP:在通信之前,需要建立连接,通信之后需要断开连接,  一般会有一个做为服务器端,有一个做为客户端。  ...
  • 就像不同国家的人之间进行交流时需要使用一种彼此都理解的语言,网络中的计算机要想相互进行“交流”,也必须选择一种彼此都能听得懂的“公用语言”,即我们通常所说的网络通信协议(Protocol)。   目前,局域网...
  • 【网络通信 -- 直播】IM 学习系列 -- 网络通信协议简介(HTTP 协议三) 【1】HTTP 实体数据 【1.1】数据类型与编码 MIME,多用途互联网邮件扩展(Multipurpose Internet Mail Extensions), MIME 把数据分成了八...
  • 网络通信协议 计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。 通信协议分层思想 由于结点之间联系很复杂,在制定协议时,把复杂成份分解成...
  • 网络通信一般指网络协议 网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,...网络通信中最重要的就是网络通信协议。当今网络协议有很多,局域网中最常用的有三个网络协议:MICROSOFT的NETBEUI...
  • 最近学习了解了一些常用的通信协议,整理了一下,分享出来。1.UARTUART是异步串行通信口的总称。它所包含的RS232\RS449\RS423等等是对应各种异步串行通信口的接口标准和总线标准。他们规定了通信口的电气特性、传输...
  • 14-4 网络编程 ---- 通信要素2: 网络通信协议 一、概述 1.网络通信协议 计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。 2.问题:网络协议太...
  • 一、网络协议是什么?...从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守约定,也就是通信协议。主要是对信息传输速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。...
  • 协议网络中计算机或设备之间进行通信的一系列规则集合。常用协议有IP、TCP、HTTP、POP3、SMTP等。 1.2、什么是协议栈 在网络中,为了完成通信,必须使用多层上多种协议。这些协议按照层次顺序组合在一起,...
  • 是互联网广泛使用的通信协议,常用于B/S架构中。 HTTP连接使用的是短连接形式,也就是“请求-响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。 HTTP常用的有...
  •   把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。 网络编程的目的: ​ 直接或间接...
  • 常用网络协议

    2021-01-24 20:28:24
    负责建立和断开连接、设置最大接收单元、设置验证协议以及设置是否进行通信质量监控。 NCP协议:依赖上层。 CSMA/CD协议:又称为带有冲突检测载波侦听多路存取。在以太网中使用介质访问控制方法,主要工作特点...
  • ip协议(Internet Protocol):因特网协议...tcp协议(Transmission Control Protocol 传输控制协议):面向连接、可靠、给予字节流传输层通信协议,可以保障双方通信可靠性。 tcp3次握手:1.客户端发送SYN包(...
  • 常用的三种网络协议

    万次阅读 2017-07-14 16:50:52
    网络协议(Protocol)是一种特殊软件,是计算机网络实现其...网络协议遍及OSI通信模型各个层次,从我们非常熟悉TCP/IP、HTTP、FTP协议,到OSPF、IGP等协议,有上千种之多。对于普通用户而言,不需要关心太多
  • 本文主要介绍了局域网中最常用的三种网络协议网络中不同的工作站,服务器之间能传输数据,源于协议的存在。随着网络的发展,不同的开发商开发了不同的通信方式。为了使通信成功可靠,网络中的所有主机都必须使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,250
精华内容 900
关键字:

常用的网络通信协议