精华内容
下载资源
问答
  • TCP/IP协议简述(OSI7层模型与TCP/IP协议)
    千次阅读
    2021-12-20 14:46:14

    TCP/IP协议简述(OSI7层模型与TCP/IP协议)

    OSI7层模型与TCP/IP协议本身没有太直接的关联,从名字也不难看出。一个是作为标准体系、参考模型(这个参考模型中其实也是有一些具体协议的),一个是具体实现协议组成(并不是单一的协议,它是一个协议簇)。TCP/IP协议是在一定程度上参考了OSI7层模型的,甚至可以说是简化。具体的情况我们在后文在进行对比说明。


    前言

    本文是基于自己的工作经验积累与学习理解,参考相关资料进行整理,用于自己学习记录以及分享交流。TCP/IP协议相关的理论知识相对较多(虽然感觉在我的工作内容中使用的范围相对较少,但实际发现有很多以及成为了常用工作常识,以至于没感觉到使用。),所以与之相关的详细知识整理会作为一个专门的分类专栏记录分享。

    一、什么OSI7层参考模型?

    1.定义

    其定义是比较简单的,百度百科的描述就很容易理解。我这里就简单复制一下,加上自己的一些比较通俗一点的描述。

    七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。

    通俗的讲,这就像是我们与人交流需要一种语言,普通话、上海话、四川话等等,这个模型就给出了建议标准,普通话建议是什么样的,四川话建议是什么样的。实际使用可以有不同,每个人的发音是可以有口音的,你也可以考虑不接受建议参考,选择自己定义,当然这会带来一些不便,因为其他人不一定接收你的定义,学习你的定义也很麻烦,使用范围也不广。

    2.基本结构组成

    应用层

    网络服务与最终用户的一个接口。(就像是我们寄快递最终选择的运输送货的公司)
    常见协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

    表示层

    数据的表示、安全、压缩。(就像是寄快递前最后的包装过程)
    常见的格式有,JPEG、ASCll、EBCDIC、加密格式等

    会话层

    建立、管理、终止会话。对应主机进程,指本地主机与远程主机正在进行的会话。(就像是寄快递之前和收货人建立联系,知道地址,联系方式等等)

    在后面的TCP/IP中我们会知道,这三层结构是被TCP/IP合并成一层了的,这就像现在我们寄快递通常上述的都不用管,都交给了快递公司处理。合并为“应用层”

    传输层

    定义传输数据的协议端口号,以及流控和差错校验。(这就像快递到了收货地之后,快递员要根据具体的楼号房间号分发。当然也要知道具体的发货人和详细信息)
    常见的协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层

    网络层

    进行逻辑地址寻址,实现不同网络之间的路径选择。(这就像快递从发货地到收货地双方的地址,这里通常是指IP地址)
    常见的协议有:ICMP IGMP IP(IPV4 IPV6)

    数据链路层

    建立逻辑连接、进行硬件地址寻址、差错校验 等功能。(由底层网络定义协议,这里也是一个寻址的过程,虽然上面已经有了一个IP寻址,但这个依然不可或缺,因为IP是可以变更的。这就像我们的居住地址是会有搬迁的(买房卖房租房等))
    这一层将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。

    物理层

    规定通信设备的机械的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。
    (由底层网络定义协议,这就是运输过程的实际物理工具,网线,服务器等等硬件相关的协议定义标准,像是电流、编码、光调制等等。具体地讲,机械 特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率 距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组 操作规程,是指在物理连接的建立、维护、交换信息是,DTE和DCE双放在各电路上的动作系列在这一层,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等)

    在后面的TCP/IP中我们会知道,数据链路层和物理层也常常定义合并成一层“网路接口层”。也就形成了我们经常会听到的TCP/IP四层结构和TCP/IP五层结构两种说法。官方一些的定义应该是四层结构,只是个人感觉工作中还是五层更常用或者说是习惯。

    二、什么TCP/IP协议簇?

    1.定义

    其定义是比较简单的,百度百科的描述就很容易理解。我这里就简单复制一下,加上自己的一些比较通俗一点的描述。

    TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
    TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,但是这显然是有些复杂的,所以在TCP/IP协议中,它们被简化为了四个层次(常用也有五层一说,前面有提到,后续我们也会说到)。

    通俗的说就是OSI参考模型给出来官方建议沟通交流语言范本,TCP/IP则根据实际使用状况,参考OSI形成了一套现在大家都用的交流语言(普通话),也就是TCP/IP协议簇。

    2.结构

    TCP/IP协议分为:应用层、传输层、网络层、网络接口层(物数据链路层、物理层),通常我们讲由应用层到物理层是由上层到下层。
    为了行文的方便,这里我们从下层(物理层)倒述至上层(应用层)。

    物理层与数据链路层(网络接口层)

    这两层在TCP/IP协议中是合并为同一层了的(通常也有这两层继续保留分开的模式,个人感觉分开的还是实际使用更广)。其工作的主要内容也与OSI模型中这两层的作用基本一致。

    网络层

    网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能,与OSI参考模型的作用相差不大。
    这一层中常见的重要协议有:IP协议(重要到了协议簇的命名都有它)、ARP协议、路由协议等。关于这些协议已经该层的更详细的作用说明,在这就不细说了。后续在补充文档单独说明。

    传输层

    作为TCP/IP协议的第二层,运输层在整个TCP/IP协议中起到了中流砥柱的作用。也正是因为其重要性,所以并没有将其合并,而是继续作为独立的一层,其作用与OSI参考模型相差不大。
    链路层定义了主机的身份,即MAC地址,而网络层定义了IP地址,明确了主机所在的网段,有了这两个地址,数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。传输层就承担着这么工作,也就诞生了TCP与UDP协议,这两个协议也就成为了传输层的重要协议,尤其是TCP协议(甚至因此整个协议簇都以此命名,可见其重要性)。

    在这里我们不对这两个协议做过多的说明,后续在拎出来单独说明。

    应用层

    应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。这一层就是整合了OSI模型的上三层(应用层、表示层、会话层),其作用也就是这三层的一个整合,整合的原因主要在于这三层本身提供的服务相差不大,整合之后既能满足现有需求,也使得应用起来更加的简洁。
    (1)对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,例如邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。
    (2)应用层还能加密、解密、格式化数据。
    (3)应用层可以建立或解除与其他节点的联系,这样可以充分节省网络资源。

    理论上讲,有了以上几层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差,因此,应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等,在请求Header中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。
    所以应用层的主要工作就是定义数据格式并按照对应的格式解读数据

    总结

    以上就是本文的全部内容了,简述了TCP/IP的概念。后续将在对各层次的详细作用功能以及常见的重要的实际使用做一些举例说明。

    更多相关内容
  • TCP/IP 块包含一服务器块和一客户端块。 这些是使用 C MEX S-function 和 Winsock2 实现的。 在这四文件中,matser.dll 是服务器实现,matcli.dll 是客户端实现。 server.mdl 和 client.mdl 是示例 Simulink ...
  • 摘要:Delphi源码,网络相关,TCP,聊天 Delphi源码编写的 TCP/IP网络通信和监听实例,使用delphi6编写的,原理主要是利用serversocket和clientsocket进行网络通信,还可进行简单的监听以及聊天信息发送和接收,程序...
  • 太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

    万次阅读 多人点赞 2020-05-07 09:30:15
    OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。 二、 TCP/IP 基础 1. TCP/IP 的具体含义 从字面意义上讲,有人可能会认为...

     

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

    一图看完本文

     

    一、 计算机网络体系结构分层

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

    计算机网络体系结构分层

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

    计算机网络体系结构分层

    不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。

     

    二、 TCP/IP 基础

    1. TCP/IP 的具体含义

    从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。

    互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

    网际协议群

    2. 数据包

    包、帧、数据包、段、消息

    以上五个术语都用来表述数据的单位,大致区分如下:

    • 包可以说是全能性术语;
    • 帧用于表示数据链路层中包的单位;
    • 数据包是 IP 和 UDP 等网络层以上的分层中包的单位;
    • 段则表示 TCP 数据流中的信息;
    • 消息是指应用协议中数据的单位。

    每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    数据包首部

    网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。

    3. 数据处理流程

    下图以用户 a 向用户 b 发送邮件为例子:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

    数据处理流程

    • ① 应用程序处理
    • 首先应用程序会进行编码处理,这些编码相当于 OSI 的表示层功能;
    • 编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能,相当于 OSI 的会话层功能。
    • ② TCP 模块的处理
    • TCP 根据应用的指示,负责建立连接、发送数据以及断开连接。TCP 提供将应用层发来的数据顺利发送至对端的可靠传输。为了实现这一功能,需要在应用层数据的前端附加一个 TCP 首部。
    • ③ IP 模块的处理
    • IP 将 TCP 传过来的 TCP 首部和 TCP 数据合起来当做自己的数据,并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,参考路由控制表决定接受此 IP 包的路由或主机。
    • ④ 网络接口(以太网驱动)的处理
    • 从 IP 传过来的 IP 包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。
    • ⑤ 网络接口(以太网驱动)的处理
    • 主机收到以太网包后,首先从以太网包首部找到 MAC 地址判断是否为发送给自己的包,若不是则丢弃数据。
    • 如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块,如 IP、ARP 等。这里的例子则是 IP 。
    • ⑥ IP 模块的处理
    • IP 模块接收到 数据后也做类似的处理。从包首部中判断此 IP 地址是否与自己的 IP 地址匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块,如 TCP、UDP。这里的例子则是 TCP。
    • 另外吗,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送往的主机或路由器之后再进行转发数据。
    • ⑦ TCP 模块的处理
    • 在 TCP 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。
    • ⑧ 应用程序的处理
    • 接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。

     

    三、传输层中的 TCP 和 UDP

    TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。

    • TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。TCP 为提供可靠性传输,实行“顺序控制”或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众多功能。
    • UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。在 UDP 的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。
    • TCP 和 UDP 的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实现可靠传输的情况;而在一方面,UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。TCP 和 UDP 应该根据应用的目的按需使用。

    1. 端口号

    数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

    1.1 根据端口号识别应用

    一台计算机上同时可以运行多个程序。传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确地将数据传输。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    通过端口号识别应用

    1.2 通过 IP 地址、端口号、协议号进行通信识别

    • 仅凭目标端口号识别某一个通信是远远不够的。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    通过端口号、IP地址、协议号进行通信识别

    • ① 和② 的通信是在两台计算机上进行的。它们的目标端口号相同,都是80。这里可以根据源端口号加以区分。
    • ③ 和 ① 的目标端口号和源端口号完全相同,但它们各自的源 IP 地址不同。
    • 此外,当 IP 地址和端口号全都一样时,我们还可以通过协议号来区分(TCP 和 UDP)。

    1.3 端口号的确定

    • 标准既定的端口号:这种方法也叫静态方法。它是指每个应用程序都有其指定的端口号。但并不是说可以随意使用任何一个端口号。例如 HTTP、FTP、TELNET 等广为使用的应用协议中所使用的端口号就是固定的。这些端口号被称为知名端口号,分布在 0~1023 之间;除知名端口号之外,还有一些端口号被正式注册,它们分布在 1024~49151 之间,不过这些端口号可用于任何通信用途。
    • 时序分配法:服务器有必要确定监听端口号,但是接受服务的客户端没必要确定端口号。在这种方法下,客户端应用程序完全可以不用自己设置端口号,而全权交给操作系统进行分配。动态分配的端口号范围在 49152~65535 之间。

    1.4 端口号与协议

    • 端口号由其使用的传输层协议决定。因此,不同的传输层协议可以使用相同的端口号。
    • 此外,那些知名端口号与传输层协议并无关系。只要端口一致都将分配同一种应用程序进行处理。

    2. UDP

    • UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。
    • 并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。
    • 此外,传输途中出现丢包,UDP 也不负责重发。
    • 甚至当包的到达顺序出现乱序时也没有纠正的功能。
    • 如果需要以上的细节控制,不得不交由采用 UDP 的应用程序去处理。
    • UDP 常用于一下几个方面:1.包总量较少的通信(DNS、SNMP等);2.视频、音频等多媒体通信(即时通信);3.限定于 LAN 等特定网络中的应用通信;4.广播通信(广播、多播)。

    3. TCP

    • TCP 与 UDP 的区别相当大。它充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在 UDP 中都没有。
    • 此外,TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。
    • 根据 TCP 的这些机制,在 IP 这种无连接的网络上也能够实现高可靠性的通信( 主要通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现)。

    3.1 三次握手(重点)

    • TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。
    • 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。

    下面来看看三次握手的流程图:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    三次握手

    • 第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。
    • 第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。
    • 第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。

    3.2 四次挥手(重点)

    • 四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。
    • 由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。

    下面来看看四次挥手的流程图:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    四次挥手

    • 中断连接端可以是客户端,也可以是服务器端。
    • 第一次挥手:客户端发送一个FIN=M,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。意思是说"我客户端没有数据要发给你了",但是如果你服务器端还有数据没有发送完成,则不必急着关闭连接,可以继续发送数据。
    • 第二次挥手:服务器端收到FIN后,先发送ack=M+1,告诉客户端,你的请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客户端就进入FIN_WAIT_2 状态,继续等待服务器端的FIN报文。
    • 第三次挥手:当服务器端确定数据已发送完成,则向客户端发送FIN=N报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服务器端进入LAST_ACK状态。
    • 第四次挥手:客户端收到FIN=N报文后,就知道可以关闭连接了,但是他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N+1后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。最终完成了四次握手。

    上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,

    具体流程如下图:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    同时挥手

    3.3 通过序列号与确认应答提高可靠性

    • 在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个已收到消息的通知。这个消息叫做确认应答(ACK)。当发送端将数据发出之后会等待对端的确认应答。如果有确认应答,说明数据已经成功到达对端。反之,则数据丢失的可能性很大
    • 在一定时间内没有等待到确认应答,发送端就可以认为数据已经丢失,并进行重发。由此,即使产生了丢包,仍然能够保证数据能够到达对端,实现可靠传输。
    • 未收到确认应答并不意味着数据一定丢失。也有可能是数据对方已经收到,只是返回的确认应答在途中丢失。这种情况也会导致发送端误以为数据没有到达目的地而重发数据。
    • 此外,也有可能因为一些其他原因导致确认应答延迟到达,在源主机重发数据以后才到达的情况也屡见不鲜。此时,源主机只要按照机制重发数据即可。
    • 对于目标主机来说,反复收到相同的数据是不可取的。为了对上层应用提供可靠的传输,目标主机必须放弃重复的数据包。为此我们引入了序列号。
    • 序列号是按照顺序给发送数据的每一个字节(8位字节)都标上号码的编号。接收端查询接收数据 TCP 首部中的序列号和数据的长度,将自己下一步应该接收的序列号作为确认应答返送回去。通过序列号和确认应答号,TCP 能够识别是否已经接收数据,又能够判断是否需要接收,从而实现可靠传输。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    序列号和确认应答

    3.4 重发超时的确定

    • 重发超时是指在重发数据之前,等待确认应答到来的那个特定时间间隔。如果超过这个时间仍未收到确认应答,发送端将进行数据重发。最理想的是,找到一个最小时间,它能保证“确认应答一定能在这个时间内返回”。
    • TCP 要求不论处在何种网络环境下都要提供高性能通信,并且无论网络拥堵情况发生何种变化,都必须保持这一特性。为此,它在每次发包时都会计算往返时间及其偏差。将这个往返时间和偏差时间相加,重发超时的时间就是比这个总和要稍大一点的值。
    • 在 BSD 的 Unix 以及 Windows 系统中,超时都以0.5秒为单位进行控制,因此重发超时都是0.5秒的整数倍。不过,最初其重发超时的默认值一般设置为6秒左右。
    • 数据被重发之后若还是收不到确认应答,则进行再次发送。此时,等待确认应答的时间将会以2倍、4倍的指数函数延长。
    • 此外,数据也不会被无限、反复地重发。达到一定重发次数之后,如果仍没有任何确认应答返回,就会判断为网络或对端主机发生了异常,强制关闭连接。并且通知应用通信异常强行终止。

    3.5 以段为单位发送数据

    • 在建立 TCP 连接的同时,也可以确定发送数据包的单位,我们也可以称其为“最大消息长度”(MSS)。最理想的情况是,最大消息长度正好是 IP 中不会被分片处理的最大数据长度。
    • TCP 在传送大量数据时,是以 MSS 的大小将数据进行分割发送。进行重发时也是以 MSS 为单位。
    • MSS 在三次握手的时候,在两端主机之间被计算得出。两端的主机在发出建立连接的请求时,会在 TCP 首部中写入 MSS 选项,告诉对方自己的接口能够适应的 MSS 的大小。然后会在两者之间选择一个较小的值投入使用。

    3.6 利用窗口控制提高速度

    • TCP 以1个段为单位,每发送一个段进行一次确认应答的处理。这样的传输方式有一个缺点,就是包的往返时间越长通信性能就越低。
    • 为解决这个问题,TCP 引入了窗口这个概念。确认应答不再是以每个分段,而是以更大的单位进行确认,转发时间将会被大幅地缩短。也就是说,发送端主机,在发送了一个段以后不必要一直等待确认应答,而是继续发送。如下图所示:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    •  
    • 窗口控制
    • 窗口大小就是指无需等待确认应答而可以继续发送数据的最大值。上图中窗口大小为4个段。这个机制实现了使用大量的缓冲区,通过对多个段同时进行确认应答的功能。

    3.7 滑动窗口控制

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    滑动窗口

    • 上图中的窗口内的数据即便没有收到确认应答也可以被发送出去。不过,在整个窗口的确认应答没有到达之前,如果其中部分数据出现丢包,那么发送端仍然要负责重传。为此,发送端主机需要设置缓存保留这些待被重传的数据,直到收到他们的确认应答。
    • 在滑动窗口以外的部分包括未发送的数据以及已经确认对端已收到的数据。当数据发出后若如期收到确认应答就可以不用再进行重发,此时数据就可以从缓存区清除。
    • 收到确认应答的情况下,将窗口滑动到确认应答中的序列号的位置。这样可以顺序地将多个段同时发送提高通信性能。这种机制也别称为滑动窗口控制。

    3.8 窗口控制中的重发控制

    在使用窗口控制中, 出现丢包一般分为两种情况:

    • ① 确认应答未能返回的情况。在这种情况下,数据已经到达对端,是不需要再进行重发的,如下图:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    部分确认应答丢失

    • ② 某个报文段丢失的情况。接收主机如果收到一个自己应该接收的序列号以外的数据时,会针对当前为止收到数据返回确认应答。如下图所示,当某一报文段丢失后,发送端会一直收到序号为1001的确认应答,因此,在窗口比较大,又出现报文段丢失的情况下,同一个序列号的确认应答将会被重复不断地返回。而发送端主机如果连续3次收到同一个确认应答,就会将其对应的数据进行重发。这种机制比之前提到的超时管理更加高效,因此也被称为高速重发控制。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    高速重发控制

     

    四、网络层中的 IP 协议

    • IP(IPv4、IPv6)相当于 OSI 参考模型中的第3层——网络层。网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫“点对点通信”。
    • 网络的下一层——数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递。而一旦跨越多种数据链路,就需要借助网络层。网络层可以跨越不同的数据链路,即使是在不同的数据链路上也能实现两端节点之间的数据包传输。
    • IP 大致分为三大作用模块,它们是 IP 寻址、路由(最终节点为止的转发)以及 IP 分包与组包。

    1. IP 地址

    1.1 IP 地址概述

    • 在计算机通信中,为了识别通信对端,必须要有一个类似于地址的识别码进行标识。在数据链路中的 MAC 地址正是用来标识同一个链路中不同计算机的一种识别码。
    • 作为网络层的 IP ,也有这种地址信息,一般叫做 IP 地址。IP 地址用于在“连接到网络中的所有主机中识别出进行通信的目标地址”。因此,在 TCP/IP 通信中所有主机或路由器必须设定自己的 IP 地址。
    • 不论一台主机与哪种数据链路连接,其 IP 地址的形式都保持不变。
    • IP 地址(IPv4 地址)由32位正整数来表示。IP 地址在计算机内部以二进制方式被处理。然而,由于我们并不习惯于采用二进制方式,我们将32位的 IP 地址以每8位为一组,分成4组,每组以 “.” 隔开,再将每组数转换成十进制数。如下:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    1.2 IP 地址由网络和主机两部分标识组成

    • 如下图,网络标识在数据链路的每个段配置不同的值。网络标识必须保证相互连接的每个段的地址不相重复。而相同段内相连的主机必须有相同的网络地址。IP 地址的“主机标识”则不允许在同一个网段内重复出现。由此,可以通过设置网络地址和主机地址,在相互连接的整个网络中保证每台主机的 IP 地址都不会相互重叠。即 IP 地址具有了唯一性。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    IP地址的主机标识

    • 如下图,IP 包被转发到途中某个路由器时,正是利用目标 IP 地址的网络标识进行路由。因为即使不看主机标识,只要一见到网络标识就能判断出是否为该网段内的主机。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    IP地址的网络标识

    1.3 IP 地址的分类

    • IP 地址分为四个级别,分别为A类、B类、C类、D类。它根据 IP 地址中从第 1 位到第 4 位的比特列对其网络标识和主机标识进行区分。
    • A 类 IP 地址是首位以 “0” 开头的地址。从第 1 位到第 8 位是它的网络标识。用十进制表示的话,0.0.0.0~127.0.0.0 是 A 类的网络地址。A 类地址的后 24 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为16,777,214个。
    • B 类 IP 地址是前两位 “10” 的地址。从第 1 位到第 16 位是它的网络标识。用十进制表示的话,128.0.0.0~191.255.0.0 是 B 类的网络地址。B 类地址的后 16 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为65,534个。
    • C 类 IP 地址是前三位为 “110” 的地址。从第 1 位到第 24 位是它的网络标识。用十进制表示的话,192.0.0.0~223.255.255.0 是 C 类的网络地址。C 类地址的后 8 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为254个。
    • D 类 IP 地址是前四位为 “1110” 的地址。从第 1 位到第 32 位是它的网络标识。用十进制表示的话,224.0.0.0~239.255.255.255 是 D 类的网络地址。D 类地址没有主机标识,常用于多播。
    • 在分配 IP 地址时关于主机标识有一点需要注意。即要用比特位表示主机地址时,不可以全部为 0 或全部为 1。因为全部为 0 只有在表示对应的网络地址或 IP 地址不可以获知的情况下才使用。而全部为 1 的主机通常作为广播地址。因此,在分配过程中,应该去掉这两种情况。这也是为什么 C 类地址每个网段最多只能有 254( 28 - 2 = 254)个主机地址的原因。

    1.4 广播地址

    • 广播地址用于在同一个链路中相互连接的主机之间发送数据包。将 IP 地址中的主机地址部分全部设置为 1,就成了广播地址。
    • 广播分为本地广播和直接广播两种。在本网络内的广播叫做本地广播;在不同网络之间的广播叫做直接广播。

    1.5 IP 多播

    • 多播用于将包发送给特定组内的所有主机。由于其直接使用 IP 地址,因此也不存在可靠传输。
    • 相比于广播,多播既可以穿透路由器,又可以实现只给那些必要的组发送数据包。请看下图:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    •  
    • IP 多播
    • 多播使用 D 类地址。因此,如果从首位开始到第 4 位是 “1110”,就可以认为是多播地址。而剩下的 28 位可以成为多播的组编号。
    • 此外, 对于多播,所有的主机(路由器以外的主机和终端主机)必须属于 224.0.0.1 的组,所有的路由器必须属于 224.0.0.2 的组。

    1.6 子网掩码

    • 现在一个 IP 地址的网络标识和主机标识已不再受限于该地址的类别,而是由一个叫做“子网掩码”的识别码通过子网网络地址细分出比 A 类、B 类、C 类更小粒度的网络。这种方式实际上就是将原来 A 类、B 类、C 类等分类中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。
    • 子网掩码用二进制方式表示的话,也是一个 32 位的数字。它对应 IP 地址网络标识部分的位全部为 “1”,对应 IP 地址主机标识的部分则全部为 “0”。由此,一个 IP 地址可以不再受限于自己的类别,而是可以用这样的子网掩码自由地定位自己的网络标识长度。当然,子网掩码必须是 IP 地址的首位开始连续的 “1”。
    • 对于子网掩码,目前有两种表示方式。第一种是,将 IP 地址与子网掩码的地址分别用两行来表示。以 172.20.100.52 的前 26 位是网络地址的情况为例,如下:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    • 第二种表示方式是,在每个 IP 地址后面追加网络地址的位数用 “/ ” 隔开,如下:

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    2. 路由

    • 发送数据包时所使用的地址是网络层的地址,即 IP 地址。然而仅仅有 IP 地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表。
    • 该路由控制表的形成方式有两种:一种是管理员手动设置,另一种是路由器与其他路由器相互交换信息时自动刷新。前者也叫做静态路由控制,而后者叫做动态路由控制。
    • IP 协议始终认为路由表是正确的。然后,IP 本身并没有定义制作路由控制表的协议。即 IP 没有制作路由控制表的机制。该表示由一个叫做“路由协议”的协议制作而成。

    2.1 IP 地址与路由控制

    • IP 地址的网络地址部分用于进行路由控制。
    • 路由控制表中记录着网络地址与下一步应该发送至路由器的地址。
    • 在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

    路由控制表与 IP 包发送

    3. IP 分包与组包

    • 每种数据链路的最大传输单元(MTU)都不尽相同,因为每个不同类型的数据链路的使用目的不同。使用目的不同,可承载的 MTU 也就不同。
    • 任何一台主机都有必要对 IP 分片进行相应的处理。分片往往在网络上遇到比较大的报文无法一下子发送出去时才会进行处理。
    • 经过分片之后的 IP 数据报在被重组的时候,只能由目标主机进行。路由器虽然做分片但不会进行重组。

    3.1 路径 MTU 发现

    • 分片机制也有它的不足。如路由器的处理负荷加重之类。因此,只要允许,是不希望由路由器进行 IP 数据包的分片处理的。
    • 为了应对分片机制的不足,“路径 MTU 发现” 技术应运而生。路径 MTU 指的是,从发送端主机到接收端主机之间不需要分片是最大 MTU 的大小。即路径中存在的所有数据链路中最小的 MTU 。
    • 进行路径 MTU 发现,就可以避免在中途的路由器上进行分片处理,也可以在 TCP 中发送更大的包。

    4. IPv6

    • IPv6(IP version 6)是为了根本解决 IPv4 地址耗尽的问题而被标准化的网际协议。IPv4 的地址长度为 4 个 8 位字节,即 32 比特。而 IPv6 的地址长度则是原来的 4 倍,即 128 比特,一般写成 8 个 16 位字节。

    4.1 IPv6 的特点

    • IP 得知的扩大与路由控制表的聚合。
    • 性能提升。包首部长度采用固定的值(40字节),不再采用首部检验码。简化首部结构,减轻路由器负担。路由器不再做分片处理。
    • 支持即插即用功能。即使没有DHCP服务器也可以实现自动分配 IP 地址。
    • 采用认证与加密功能。应对伪造 IP 地址的网络安全功能以及防止线路窃听的功能。
    • 多播、Mobile IP 成为扩展功能。

    4.2 IPv6 中 IP 地址的标记方法

    • 一般人们将 128 比特 IP 地址以每 16 比特为一组,每组用冒号(“:”)隔开进行标记。
    • 而且如果出现连续的 0 时还可以将这些 0 省略,并用两个冒号(“::”)隔开。但是,一个 IP 地址中只允许出现一次两个连续的冒号。

    4.3 IPv6 地址的结构

    • IPv6 类似 IPv4,也是通过 IP 地址的前几位标识 IP 地址的种类。
    • 在互联网通信中,使用一种全局的单播地址。它是互联网中唯一的一个地址,不需要正式分配 IP 地址。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    4.4 全局单播地址

    • 全局单播地址是指世界上唯一的一个地址。它是互联网通信以及各个域内部通信中最为常用的一个 IPv6 地址。
    • 格式如下图所示,现在 IPv6 的网络中所使用的格式为,n = 48,m = 16 以及 128 - n - m = 64。即前 64 比特为网络标识,后 64 比特为主机标识。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    全局单播地址

    4.5 链路本地单播地址

    • 链路本地单播地址是指在同一个数据链路内唯一的地址。它用于不经过路由器,在同一个链路中的通信。通常接口 ID 保存 64 比特版的 MAC 地址。

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    链路本地单播地址

    4.6 唯一本地地址

    • 唯一本地地址是不进行互联网通信时所用的地址。
    • 唯一本地地址虽然不会与互联网连接,但是也会尽可能地随机生成一个唯一的全局 ID。
    • L 通常被置为 1
    • 全局 ID 的值随机决定
    • 子网 ID 是指该域子网地址
    • 接口 ID 即为接口的 ID

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    唯一本地地址

    4.7 IPv6 分段处理

    • IPv6 的分片处理只在作为起点的发送端主机上进行,路由器不参与分片。
    • IPv6 中最小 MTU 为 1280 字节,因此,在嵌入式系统中对于那些有一定系统资源限制的设备来说,不需要进行“路径 MTU 发现”,而是在发送 IP 包时直接以 1280 字节为单位分片送出。

    4.8 IP 首部(暂略)

    5. IP 协议相关技术

    • IP 旨在让最终目标主机收到数据包,但是在这一过程中仅仅有 IP 是无法实现通信的。必须还有能够解析主机名称和 MAC 地址的功能,以及数据包在发送过程中异常情况处理的功能。

    5.1 DNS

    • 我们平常在访问某个网站时不适用 IP 地址,而是用一串由罗马字和点号组成的字符串。而一般用户在使用 TCP/IP 进行通信时也不使用 IP 地址。能够这样做是因为有了 DNS (Domain Name System)功能的支持。DNS 可以将那串字符串自动转换为具体的 IP 地址。
    • 这种 DNS 不仅适用于 IPv4,还适用于 IPv6。

    5.2 ARP

    • 只要确定了 IP 地址,就可以向这个目标地址发送 IP 数据报。然而,在底层数据链路层,进行实际通信时却有必要了解每个 IP 地址所对应的 MAC 地址。
    • ARP 是一种解决地址问题的协议。以目标 IP 地址为线索,用来定位下一个应该接收数据分包的网络设备对应的 MAC 地址。不过 ARP 只适用于 IPv4,不能用于 IPv6。IPv6 中可以用 ICMPv6 替代 ARP 发送邻居探索消息。
    • RARP 是将 ARP 反过来,从 MAC 地址定位 IP 地址的一种协议。

    5.3 ICMP

    • ICMP 的主要功能包括,确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包被废弃的具体原因,改善网络设置等。
    • IPv4 中 ICMP 仅作为一个辅助作用支持 IPv4。也就是说,在 IPv4 时期,即使没有 ICMP,仍然可以实现 IP 通信。然而,在 IPv6 中,ICMP 的作用被扩大,如果没有 ICMPv6,IPv6 就无法进行正常通信。

    5.4 DHCP

    • 如果逐一为每一台主机设置 IP 地址会是非常繁琐的事情。特别是在移动使用笔记本电脑、只能终端以及平板电脑等设备时,每移动到一个新的地方,都要重新设置 IP 地址。
    • 于是,为了实现自动设置 IP 地址、统一管理 IP 地址分配,就产生了 DHCP(Dynamic Host Configuration Protocol)协议。有了 DHCP,计算机只要连接到网络,就可以进行 TCP/IP 通信。也就是说,DHCP 让即插即用变得可能。
    • DHCP 不仅在 IPv4 中,在 IPv6 中也可以使用。

    5.5 NAT

    • NAT(Network Address Translator)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。
    • 除转换 IP 地址外,还出现了可以转换 TCP、UDP 端口号的 NAPT(Network Address Ports Translator)技术,由此可以实现用一个全局 IP 地址与多个主机的通信。
    • NAT(NAPT)实际上是为正在面临地址枯竭的 IPv4 而开发的技术。不过,在 IPv6 中为了提高网络安全也在使用 NAT,在 IPv4 和 IPv6 之间的相互通信当中常常使用 NAT-PT。

    5.6 IP 隧道

    太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

     

    夹着 IPv4 网络的两个 IPv6 网络

    • 如上图的网络环境中,网络 A 与网络 B 之间无法直接进行通信,为了让它们之间正常通信,这时必须得采用 IP 隧道的功能。
    • IP 隧道可以将那些从网络 A 发过来的 IPv6 的包统合为一个数据,再为之追加一个 IPv4 的首部以后转发给网络 C。
    • 一般情况下,紧接着 IP 首部的是 TCP 或 UDP 的首部。然而,现在的应用当中“ IP 首部的后面还是 IP 首部”或者“ IP 首部的后面是 IPv6 的首部”等情况与日俱增。这种在网络层的首部后面追加网络层首部的通信方法就叫做“ IP 隧道”。

     

    作者:涤生_Woo

    链接:https://www.jianshu.com/p/9f3e879a4c9c

     

    展开全文
  • 1-2TCP/IP协议配置

    2021-10-03 23:16:27
    文章目录1.2.1TCP/IP协议1.2.2基本环境设置 1.2.1TCP/IP协议 一、TCP/IP简介 1.什么是TCP/IP协议 -TCP/IP是最为广泛支持的通信协议集合 -包括大量Internet应用中的标准协议 -支持跨网络结构、跨操作系统平台的通信 2...

    1.2.1TCP/IP协议

    一、TCP/IP简介
    1.什么是TCP/IP协议
    -TCP/IP是最为广泛支持的通信协议集合
    -包括大量Internet应用中的标准协议
    -支持跨网络结构、跨操作系统平台的通信

    2.主机通信的三要素
    -IP地址
    -子网掩码
    -IP路由

    二、IP地址概述
    1.IP地址的作用
    用来标识一个节点的网络地址

    2.IP地址的组成
    -一共32个二进制位
    -表示为4个十进制数,以.隔开

    3.IP地址分类
    -A类:1~127 网+主+主+主
    -B类:128~191 网+网+主+主
    -C类:192~223 网+网+网+主
    -D类: 224~239 组播
    -E类: 240~254 科研

    4.子网掩码
    作用:为计算机标识IP地址的网络位与主机位,利用二进制的1标识网络位,利用二进制的0标识主机位
    -A类:255.0.0.0
    -B类: 255.255.0.0
    -C类: 255.255.255.0

    5.网关介绍
    -从一个网络连接到另一个网络的“关口”
    -通常是一台路由器,或者防火墙/接入服务器

    6.DNS服务器
    DNS服务器:域名解析系统,提供网络域名解析的机器
    域名解析: 能够将域名解析为IP地址
    过程:www.baidu.com——>DNS服务器——>IP地址——>百度服务器

    1.2.2基本环境设置

    一、TCP/IP的设置
    1.方式1,自动获取IP地址
    -windows Server 2008默认方式
    -临时地址: 169.254.0.0/16

    2.方式2,手动配置IP地址
    -增加管理员负担
    -容易出错
    -适合企业内部服务器使用

    二、配置IP地址
    -右击桌面网络->属性->更改适配器设置
    -双击【本地连接】->属性
    -双击->【Internet协议版本4(TCP/IPV4)】
    -配置完成后,单击【确定】完成

    三、查看IP地址
    -开始->控制面板->网络和共享中心->更改网络适配设置
    ->双击【本地连接】->详细信息

    四、用命令查看IP地址
    win+R,在弹出的对话框中输入cmd命令
    在命令行输入ipconfig /all
    找到当前使用的网卡,即可看到当前电脑的IP地址

    五、使用ping命令测试网络连通性
    1.回环测试
    -验证TCP/IP协议驱动是否正常

    2.本网络连通性测试
    -ping同一网段内其他计算机的IP地址
    -ping默认网关的IP地址
    -能够成功连接到目标主机

    3.远程连通测试
    -ping位于其他网络内的远程主机
    -如果此步成功,则回环测试、本网连通性测试均可忽略,否则可依次执行检
    在这里插入图片描述

    展开全文
  • 用qt编译先运行server,再运行client使其正常运行。ip地址自行改变
  • TCP/IP 介绍

    2021-01-08 22:58:37
    TCP/IP 介绍 TCP/IP 是用于因特网 (Internet) 的通信协议。 计算机通信协议(Computer Communication Protocol) 计算机通信协议是对那些计算机必须遵守以便彼此通信的的规则的描述。 什么是 TCP/IPTCP/IP 是...
  • 计算机网络-TCP/IP简单的介绍

    千次阅读 2022-04-12 11:53:21
    TCP/IP模型 协议: 网络接口层:ARP RARP 网络层: ICMP IGMP 传输层:TCP UDP 数据链路层协议: 地址解析协议(arp): 主机以广播的形式,发送包含目标ip地址的包到网络上所有主机,接受返回信息,来确定那个目标...
    • TCP/IP模型
    1. 协议:

    网络接口层:ARP   RARP

    网络层: ICMP   IGMP

    传输层:TCP     UDP

    1. 数据链路层协议:
    1. 地址解析协议(arp): 主机以广播的形式,发送包含目标ip地址的包到网络上所有主机,接受返回信息,来确定那个目标地址的MAC地址,收到响应地址信息后,将ip地址和MAC地址映射缓存一段时间
    2. Arp与RARP之间的区别:

    Arp 以32位Internet地址向48位以太网地址发送数据包

    RARP以48位以太网地址向32位Internet地址发送数据包

    1. MAC地址:用来标识互联网上每一个站点的标识符,采用十六进制数标识,共6个字节(48位)

    发送的过程:arp会先在缓存中查看自己是否存在MAC地址和IP地址的映射关系,如果有将MAC地址按照协议写入MAC帧,然后发送到局域网

    如果没有,则就广播发送MAC帧的请求,请求收到,发送arp响应包,包括IP和MAC之间的对应关系,进行缓存,方便下次使用。

    1. 在linux中查看arp的方式

    man  arp   

    arp -a    查看本地缓存的ip地址和mac地址之间的映射

    arp -n   查看详细的信息

    windows命令下

    arp   : 查看windows下的详细信息

    Arp -a :  查看windows下ip地址与mac地址之间的映射关系

     

    arp -d    删除windows下缓存的ip地址与mac地址之间的映射

    1. 逆地址解析协议Rarp:将主机的mac地址转换成ip地址,局域网中有一台主机只知道mac地址而不知道ip地址,那么可以通过rarp地址协议发送征求自身的ip地址的广播请求,然后RARP服务器负责回答。
    1. ARP与RARP之间的区别:两个的格式基本上是一致的,直接按主要差别就是RARP请求应答帧类型代码为0x8035,而RARP请求的操作代码为3,应答操作代码为4
    1. 网络层协议:
    1. IP协议是tcp/ip的核心协议:所有的TCP和UDP数据包都是IP包来传输
    2. 特点:不可靠    无连接
    3. IPv4地址划分

    A类地址:0 +7位网络号 ——24位主机号(0-127)0和127网络号都不可使用

    B类地址: 10+14位的网络号+16位的主机号(128-191)

    C类地址:110+21位网络号+8位主机号(192-223)

    D类地址:1110+28位多播组号(224-239)

    E类地址:11110+27位留用(240-254)255网络号不可使用

    1. IPV4地址的问题:地址不够

    解决的方案:使用较少的公有IP地址来代替私有的IP地址

    私有地址:(不能够在公网上使用)

    10.0.0.0-10.255.255.255

    172.16.0.0-172.31.255.255

    192.168.0.0-192.168.255.255

    1. 子网划分:由原来的网络号+主机号——》网络号+子网号+主机号(子网号是从主机号分出若干位)
    1. 子网掩码的作用:32位,用来区分IPV4地址多少位是网络号,多少位是主机号,值为1代表的是网络号和子网号,值为0代表的是主机号
    2. 计算划分子网数:借位的个数为n,子网个数为2的n次方
    3. 计算划分子网的主机数:主机位个数为m,可用主机位为2的m次方-2个
    4. 网络号:主机位全0   广播号:主机号全1
    5. 判断两个ip地址是否在同一个网段中:IP地址分别与自己的子网掩码进行“与操作”(全1则1,有0则0),查看结果是否为一致.

    展开全文
  • 电脑通过 Socket 协议与 西门子S7-200SMART PCL 通讯(包括读取和写入)的动态连接库
  • TCP/IP协议学习总结

    万次阅读 多人点赞 2021-10-28 11:37:44
    TCP/IP协议学习总结网络基础知识连接人与人的计算机网络协议随处可见的协议协议的必要性计算机中的协议分组交换协议协议分层与OSI参考模型协议的分层OSI参考模型OSI协议与OSI参考模型OSI参考模型中各个分层的作用7层...
  • TCP/IP 协议

    2021-01-08 22:59:17
    TCP/IP 是基于 TCPIP 这两最初的协议之上的不同的通信协议的大集合。 TCP – 传输控制协议 TCP 用于从应用程序到网络的数据传输控制。 TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将...
  • s7-300的tcp/ip协议通讯

    2018-10-29 20:11:49
    接 PROFINET 总线通信功能,同时还可用于标准的 TCP 通信。 通过组态 TCP 连接及使用开放式通信专用功能块与其它设备建立 TCP 连接以实现通信。 本文以 S7-300CPU 作为 TCP 的 Clint 客户端, PC 机上运行的 TCP&...
  • TCP/IP五层模型介绍

    千次阅读 2022-04-24 18:19:19
    tcp/ip五层模型详解
  • 本资源属于一将串口调试助手与TCP/IP通信上位机软件设计到了一起,由于我自己在做一物联网方面的实验,需要用到TCP/IP使得手机和电脑可以通信,然后再通过串口控制开发板,从而达到手机无线控制开发板的目的!...
  • WinsockxpFix可以解决一项部分网友都会遇到电脑能上QQ但不能上网的的典型问题,通过修复TCP/IP设置,重启电脑后就能让电脑重新联网,推荐大家使用。winsockfix可以用于修复出现问题的tcp/ip协议,在XP系统下测试可用...
  • 网络基础之TCP/IP五层模型

    千次阅读 2022-01-18 22:21:02
    文章目录互联网基础应用和数据应用的起源应用的实现——数据数据的产生数据传输网络参考模型与标准协议OSI模型TCP/IP参考模型TCP/IP之物理层常见传输介质TCP/IP之数据链路层以太网与MAC地址以太网的定义:MAC地址...
  • TCP/IP 寻址

    2021-01-08 22:58:54
    TCP/IP 使用 32 比特或者 4 组 0 到 255 之间的数字来为计算机编址。 IP地址 每计算机必须有一 IP 地址才能够连入因特网。 每 IP 包必须有一地址才能够发送到另一台计算机。 在本教程下一节,您会学习到...
  • C# TCP/IP网络数据传输及实现

    千次阅读 2021-11-02 18:54:09
    本文描述了 TCP/IP网络的基本概念,并通过VS2019 C# .Net framework来的实现UDP TCP上位机的实现,持续 更新...
  • TCP/IP协议详解

    万次阅读 多人点赞 2019-05-11 08:40:41
    认识HTTP协议 它是互联网协议(Internet Protocol Suite),一网络通信模型,是互联网的一基本的构架。 HTTP协议是Hyper Text Transfer ... HTTP是一基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件...
  • 计算机网络基础之TCP/IP协议

    千次阅读 2022-01-26 09:47:32
    一、了解完整的通信过程 ...1.TCP/IP协议,中文名称:传输控制协议/网际协议,它是internet上所有网络和主机之间进行交流所使用的共同“语言”,是internet上使用的一组完整的标准网络连接协议。 .
  • TCP/IP协议详解(TCP/IP protocol)

    千次阅读 2017-09-06 19:21:51
    本文转载自菜鸟教程TCP/IP 教程TCPIP 教程 TCPIP 介绍 计算机通信协议Computer Communication Protocol 什么是 TCPIP 在 TCPIP 内部 TCP 使用固定的连接 IP 是无连接的 IP 路由器 TCPIP TCPIP 寻址 IP地址 IP 地址...
  • python实现tcp/ip通信

    千次阅读 2021-10-31 17:20:29
  • TCP/IP网络协议详解

    千次阅读 2021-03-30 18:54:59
    一、 计算机网络体系结构分层 一图看完本文 计算机网络体系结构...从字面意义上讲,有人可能会认为 TCP/IP 是指 TCPIP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 I.
  • 电脑通过TCP/IP连接打印机

    千次阅读 2020-08-25 11:06:13
    通过IP连接打印机 右键连接 打印上面会出现ip的打印机
  • 单片机TCP/IP

    2021-08-12 11:17:28
    单片机TCP/IP就是在单片机上运行的TCP/IP协议栈。由于嵌入式联网设备越来越多,需要在嵌入式设备上实现TCP/IP协议栈,但是嵌入式设备不同于PC机,它们一般采用MCU也就是单片机而不是CPU作为核心处理器。这就需要在...
  • 每日技术干货,第一时间送达! ...不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的...2TCP/IP 基础 1. TCP/IP 的具体含义 从字面意义上讲,有人可能会认为 TCP/IP 是指
  • 常碰到网络协议损坏造成的网络故障,某些情况下用SREng等工具软件修复WINSOCK可以恢复正常,但严重的时候修复也无济于事,除了重装系统,我们可以试下下面方法重装TCP/IP协议:1、开始——运行——regedit.exe,打开...
  • TCP/IP详解

    千次阅读 2022-02-23 23:18:02
    本将会尽可能详细地介绍TCP/IP的机制,而不会执着于分析协议帧结构。同时会拓展部分其他协议帮助更好理解tcp/ip协议。如有问题,欢迎讨论。 知识铺垫 网络结构分层 谈到网络,雷打不动的分层结构图。比较常用的为4层...
  • TCP/IP参考模型-分层架构

    千次阅读 2021-12-18 19:19:06
    由于因特网的实现是一分层架构,为了防止篇幅过大,笔者不想一篇文章就写完想表达的所有内容,于是会以系列文章的方式,主要内容包括TCP/IP分层架构、网络层的最短路径算法:Dijkstra算法的实现细节,传输层的TCP...
  • 第二层:传输层,主要是有可靠传输的TCP协议,特别高效的UDP协议。主要负责传输应用层的数据包。 第三层:网络层,主要是IP协议。主要负责寻址(找到目标设备的位置) 第四层:数据链路层,主要是负责转换数字信号和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,257
精华内容 48,502
关键字:

电脑tcp/ip出现2个ip怎么删除

友情链接: svpwmsvg.rar