精华内容
下载资源
问答
  • (16)TCP/IP协议的主要协议及其主要用途
    千次阅读
    2021-11-26 14:16:32

     TCP/IP协议簇的组成:

    TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。

    其中比较重要的有SLIP协议、PPP协议、IP协议、ICMP协议ARP协议TCP协议UDP协议FTP协议DNS协议SMTP协议等。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

    TCP/IP协议簇中的主要协议

    下面是协议层从底层至顶层的一个模型图:

    互联网中常用的代表性的协议有IP、TCP、HTTP等,LAN中常用协议有IPX、SPX等

    “计算机网络体系结构”将这些网络协议进行了系统的归纳;TCP/IP就是这些协议的集合

    其中,还有Novell公司的IPX/SPX、苹果公司的AppleTalk(仅限苹果公司计算机使用)、IBM开发的用于构件大规模网络的SNA以及前DEC公司开发的DECnet等

     

    SLIP协议

    SLIP提供在串行通信线路上封装IP分组的简单方法,使远程用户通过电话线和MODEM能方便地接入TCP/IP网络。SLIP是一种简单的组帧方式,但使用时还存在一些问题。首先,SLIP不支持在连接过程中的动态IP地址分配,通信双方必须事先告知对方IP地址,这给没有固定IP地址的个人用户上INTERNET网带来了很大的不便。其次,SLIP帧中无校验字段,因此链路层上无法检测出差错,必须由上层实体或具有纠错能力MODEM来解决传输差错问题。

    PPP协议

    为了解决SLIP存在的问题,在串行通信应用中又开发了PPP协议。PPP协议是一种有效的点对点通信协议,它由串行通信线路上的组帧方式,用于建立、配制、测试和拆除数据链路链路控制协议LCP及一组用以支持不同网络层协议的网络控制协议NCPs三部分组成。PPP中的LCP协议提供了通信双方进行参数协商的手段,并且提供了一组NCPs协议,使得PPP可以支持多种网络层协议,如IP,IPX,OSI等。另外,支持IP的NCP提供了在建立链接时动态分配IP地址的功能,解决了个人用户上INTERNET网的问题。

    IP协议

    互联网协议(Internet Protocol),它将多个网络连成一个互联网,可以把高层的数据以多个数据包的形式通过互联网分发出去。IP的基本任务是通过互联网传送数据包,各个IP数据包之间是相互独立的。

    ICMP协议

    即互联网控制报文协议。从IP互联网协议的功能,可以知道IP 提供的是一种不可靠的无连接报文分组传送服务。若路由器主机发生故障时网络阻塞,就需要通知发送主机采取相应措施。为了使互联网能报告差错,或提供有关意外情况的信息,在IP层加入了一类特殊用途的报文机制,即ICMP。分组接收方利用ICMP来通知IP模块发送方,进行必需的修改。ICMP通常是由发现报文有问题的站产生的,例如可由目的主机或中继路由器来发现问题并产生的ICMP。如果一个分组不能传送,ICMP便可以被用来警告分组源,说明有网络,主机或端口不可达。ICMP也可以用来报告网络阻塞。

    ARP协议

    地址转换协议。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网上传送,必须知道彼此的物理地址。这样就存在把互联网地址变换成物理地址的转换问题。这就需要在网络层有一组服务将 IP地址转换为相应物理网络地址,这组协议即ARP。

    TCP协议

    传输控制协议,它提供的是一种可靠的数据流服务。当传送受差错干扰的数据,或举出网络故障,或网络负荷太重而使网际基本传输系统不能正常工作时,就需要通过其他的协议来保证通信的可靠。TCP就是这样的协议。TCP采用“带重传的肯定确认”技术来实现传输的可靠性。并使用“滑动窗口”的流量控制机制来提高网络的吞吐量。TCP通信建立实现了一种“虚电路”的概念。双方通信之前,先建立一条链接然后双方就可以在其上发送数据流。这种数据交换方式能提高效率,但事先建立连接和事后拆除连接需要开销。

    UDP协议

    即用户数据包协议,它是对IP协议组的扩充,它增加了一种机制,发送方可以区分一台计算机上的多个接收者。每个UDP报文除了包含数据外还有报文的目的端口的编号和报文源端口的编号,从而使UDP软件可以把报文递送给正确的接收者,然后接收者要发出一个应答。由于UDP的这种扩充,使得在两个用户进程之间递送数据包成为可能。我们频繁使用的OICQ软件正是基于UDP协议和这种机制。

    FTP协议

    文件传输协议,它是网际提供的用于访问远程机器的协议,它使用户可以在本地机与远程机之间进行有关文件的操作。FTP工作时建立两条TCP链接,分别用于传送文件和用于传送控制。FTP采用客户/服务器模式?它包含客户FTP和服务器FTP。客户FTP启动传送过程,而服务器FTP对其作出应答。

    DNS协议

    即域名服务协议,它提供域名到IP地址的转换,允许对域名资源进行分散管理。DNS最初设计的目的是使邮件发送方知道邮件接收主机及邮件发送主机的IP地址,后来发展成可服务于其他许多目标的协议。

    SMTP协议

    简单邮件传送协议互联网标准中的电子邮件是一个简单的基于文本的协议,用于可靠、有效地数据传输。SMTP作为应用层的服务,并不关心它下面采用的是何种传输服务,它可通过网络在TXP链接上传送邮件,或者简单地在同一机器的进程之间通过进程通信的通道来传送邮件,这样,邮件传输就独立于传输子系统,可在TCP/IP环境或X.25协议环境中传输邮件。

    TCP/IP协议簇中的主要用途:

    不同于OSI七层划分,TCP/IP划分为四层

    数据链路层一般在TCP/IP协议中,数据链路层和物理层统称你为网络接口层
    数据链路层是物理传输通道,可使用多种传输介质传输,可建立在任何物理传输网上。比如光纤、双绞线等

    网络层(Internet)协议包括:

    (网络层:其主要功能是要完成网络中主机间“分组”(Packet)的传输。

    IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)
    控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。
    IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层。IP数据报是无连接服务。
    ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。
    Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。
    ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。
    RARP是反向地址解析协议,通过MAC地址确定IP地址。比如无盘工作站还有DHCP服务。

    传输层协议

    (传输层主要任务是向上一层提供可靠的端到端(End-to-End)服务,确保“报文”无差错、有序、不丢失、无重复地传输。它向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中最关键的一层

    传输控制协议TCP(Transmission Control Protocol):TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于点对点的通讯。
    TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。

    用户数据报协议UDP(User Datagram protocol):UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
    UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求程序员编程验证。UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。

    应用层协议:

    应用层确定进程间通信的性质,以满足用户的需要。

    (应用层直接面向用户,是OSI中的最高层。它的主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理,电子邮件的内容处理,不同计算机通过网络交互访问的虚拟终端功能等。)
    FTP(File Transfer Protocol)是文件传输协议,一般上传下载用FTP服务,数据端口是20H,控制端口是21H。
    Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。
    DNS(Domain Name Service)是域名解析服务,提供域名到IP地址之间的转换,使用端口53。
    SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转,使用端口25。
    NFS(Network File System)是网络文件系统,用于网络中不同主机间的文件共享。
    HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于实现互联网中的WWW服务,使用端口80。

    引申(基础补充):TCP/IP 常用协议 - 疯狂的小牛仔 - 博客园 (cnblogs.com)

           ***                     干货 | 终于有人能把TCP/IP 协议讲明白了!_数据包 (sohu.com)

    更多相关内容
  • 常用互联网协议之TCP/IP协议

    千次阅读 2019-03-26 11:38:11
    一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称。 具体点,IP或ICMP、TCP或UDP、TELENT或FTP、以及HTTP等都属于TCP/IP协议,而TCP/IP一词泛指这些协议,有时称它们为TCP/IP为网际协议族/TCP/IP协议族...

    一、TCP/IP的标准化

    1、TCP/IP的含义

    一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称。

    具体点,IP或ICMP、TCP或UDP、TELENT或FTP、以及HTTP等都属于TCP/IP协议,而TCP/IP一词泛指这些协议,有时称它们为TCP/IP为网际协议族/TCP/IP协议族

    如下图所示:

     

    二、TCP/IP协议分层模型

    1、TCP/IP与OSI参考模型

      各层之间的作用:

          

    下面是从网络上找到的TCP/IP通信数据流

                                                 

     

    2、HTTP 关系密切的协议 : IP、TCP 和 DNS

        IP协议:IP(Internet protocol),这里的IP不是值得我们通常所说的192.168.1.1.这个IP指的是一种协议,而后面的数字值得是IP地址。IP协议的作用在于把各种数据包准确无误的传递给对方,其中两个重要的条件是IP地址,和MAC地址(Media Access Control Address)。由于IP地址是稀有资源,不可能每个人都拥有一个IP地址,所以我们通常的IP地址是路由器给我们生成的IP地址,路由器里面会记录我们的MAC地址。而MAC地址是全球唯一的,除去人为因素外不可能重复。举一个现实生活中的例子,IP地址就如同是我们居住小区的地址,而MAC地址就是我们住的那栋楼那个房间那个人。关于MAC地址,如果我没讲清楚,可点击连接,查看百度。以下内容摘抄自《图解HTTP》

       使用 ARP 协议凭借 MAC 地址进行通信

       IP 间的通信依赖 MAC 地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一个中转目标。这时,会采用 ARP 协议(Address Resolution Protocol)。ARP 是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址

        感兴趣的可以参考ARP协议(Address Resolution Protocol),题外话,从文档上来看,百度百科要比维基百科介绍的好的多。

     你向另外一台电脑发送一条信息,怎么再茫茫人海中瞬间找到对方,以下是图示:

       

                

     

    TCP协议:如果说IP协议是找到对方的详细地址。那么TCP协议就是把安全的把东西带给对方。各有分工,互不冲突。

          按层次分,TCP属于传输层,提供可靠的字节流服务。什么叫字节流服务呢?这个名字听起来让人不知所以然,下面听下我通俗的解释。所谓的字节流,其实就类似于信息切割。比如你是一个卖自行车的,你要去送货。安装好的自行车,太过庞大,又不稳定,容易损伤。不如直接把自行车拆开来,每个零件上都贴上收货人的姓名。最后送到后按照把属于同一个人的自行车再组装起来,这个拆解、运输、拼装的过程其实就是TCP字节流的过程。

         我们看下严谨的学术表达是怎样的:

         所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。

         为了确保信息能够确保准确无误的到达,TCP采用了著名的三次握手策略(three-way handshaking).下面我写一段对话来模拟下这三次握手。

         

    DNS:DNS(Domain names System) 和HTTP协议一样是处于应用层的服务,提供域名到IP地址之间的解析服务。

    互联网之间是通过IP地址通信的,但是IP地址并不符合认得记忆习惯,人喜欢记忆有意义的字词。所以DNS服务就为了解决这个问题而生了。其实很好理解,形如我们电脑中host文件。

    192.168.1.11       roverliang.com  

    当我们访问roverliang.com 的时候,电脑便不会去外网服务器上查询了,直接去访问192.168.1.111。这是一个简单的域名劫持,足以说明DNS的涵义了。

    下面是我们访问一个网页,各种协议在里面起的作用。

    原始出处,不详,检索多篇后,自认为写的不错的文章,本文略作注解,方便大家阅读和理解,希望能够在原作的基础上更好地帮助大家。

    文章转自:https://blog.csdn.net/u010785091/article/details/78791543

     

    展开全文
  • TCP 是互联网核心协议之一

    千次阅读 2017-11-07 20:05:53
    TCP 是互联网核心协议之一 ...底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(packet),解决了子网内部的点对点通信。 (图片说明:以太网协议解决了局域网的点对点通信。) 但

    TCP 是互联网核心协议之一


    一、TCP 协议的作用

    互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。

    这里写图片描述

    (图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。)

    最底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(packet),解决了子网内部的点对点通信。

    这里写图片描述

    (图片说明:以太网协议解决了局域网的点对点通信。)

    但是,以太网协议不能解决多个局域网如何互通,这由 IP 协议解决。

    这里写图片描述

    (图片说明:IP 协议可以连接多个局域网。)

    IP 协议定义了一套自己的地址规则,称为 IP 地址。它实现了路由功能,允许某个局域网的 A 主机,向另一个局域网的 B 主机发送消息。

    这里写图片描述

    (图片说明:路由器就是基于 IP 协议。局域网之间要靠路由器连接。)

    路由的原理很简单。市场上所有的路由器,背后都有很多网口,要接入多根网线。路由器内部有一张路由表,规定了 A 段 IP 地址走出口一,B 段地址走出口二,……通过这套”指路牌”,实现了数据包的转发。

    这里写图片描述

    图片说明:本机的路由表注明了不同 IP 目的地的数据包,要发送到哪一个网口(interface)。)

    IP 协议只是一个地址协议,并不保证数据包的完整。如果路由器丢包(比如缓存满了,新进来的数据包就会丢失),就需要发现丢了哪一个包,以及如何重新发送这个包。这就要依靠 TCP 协议。

    简单说,TCP 协议的作用是,保证数据通信的完整性和可靠性,防止丢包。

    二、TCP 数据包的大小

    以太网数据包(packet)的大小是固定的,最初是1518字节,后来增加到1522字节。其中, 1500 字节是负载(payload),22字节是头信息(head)。

    IP 数据包在以太网数据包的负载里面,它也有自己的头信息,最少需要20字节,所以 IP 数据包的负载最多为1480字节。

    这里写图片描述

    (图片说明:IP 数据包在以太网数据包里面,TCP 数据包在 IP 数据包里面。)

    TCP 数据包在 IP 数据包的负载里面。它的头信息最少也需要20字节,因此 TCP 数据包的最大负载是 1480 - 20 = 1460 字节。由于 IP 和 TCP 协议往往有额外的头信息,所以 TCP 负载实际为1400字节左右。

    因此,一条1500字节的信息需要两个 TCP 数据包。HTTP/2 协议的一大改进, 就是压缩 HTTP 协议的头信息,使得一个 HTTP 请求可以放在一个 TCP 数据包里面,而不是分成多个,这样就提高了速度。

    这里写图片描述

    (图片说明:以太网数据包的负载是1500字节,TCP 数据包的负载在1400字节左右。)

    三、TCP 数据包的编号(SEQ)

    一个包1400字节,那么一次性发送大量数据,就必须分成多个包。比如,一个 10MB 的文件,需要发送7100多个包。

    发送的时候,TCP 协议为每个包编号(sequence number,简称 SEQ),以便接收的一方按照顺序还原。万一发生丢包,也可以知道丢失的是哪一个包。

    第一个包的编号是一个随机数。为了便于理解,这里就把它称为1号包。假定这个包的负载长度是100字节,那么可以推算出下一个包的编号应该是101。这就是说,每个数据包都可以得到两个编号:自身的编号,以及下一个包的编号。接收方由此知道,应该按照什么顺序将它们还原成原始文件。

    这里写图片描述

    (图片说明:当前包的编号是45943,下一个数据包的编号是46183,由此可知,这个包的负载是240字节。)

    四、TCP 数据包的组装

    收到 TCP 数据包以后,组装还原是操作系统完成的。应用程序不会直接处理 TCP 数据包。

    对于应用程序来说,不用关心数据通信的细节。除非线路异常,收到的总是完整的数据。应用程序需要的数据放在 TCP 数据包里面,有自己的格式(比如 HTTP 协议)。

    TCP 并没有提供任何机制,表示原始文件的大小,这由应用层的协议来规定。比如,HTTP 协议就有一个头信息Content-Length,表示信息体的大小。对于操作系统来说,就是持续地接收 TCP 数据包,将它们按照顺序组装好,一个包都不少。

    操作系统不会去处理 TCP 数据包里面的数据。一旦组装好 TCP 数据包,就把它们转交给应用程序。TCP 数据包里面有一个端口(port)参数,就是用来指定转交给监听该端口的应用程序。

    这里写图片描述

    (图片说明:系统根据 TCP 数据包里面的端口,将组装好的数据转交给相应的应用程序。上图中,21端口是 FTP 服务器,25端口是 SMTP 服务,80端口是 Web 服务器。)

    应用程序收到组装好的原始数据,以浏览器为例,就会根据 HTTP 协议的Content-Length字段正确读出一段段的数据。这也意味着,一次 TCP 通信可以包括多个 HTTP 通信。

    五、慢启动和 ACK

    服务器发送数据包,当然越快越好,最好一次性全发出去。但是,发得太快,就有可能丢包。带宽小、路由器过热、缓存溢出等许多因素都会导致丢包。线路不好的话,发得越快,丢得越多。

    最理想的状态是,在线路允许的情况下,达到最高速率。但是我们怎么知道,对方线路的理想速率是多少呢?答案就是慢慢试。

    TCP 协议为了做到效率与可靠性的统一,设计了一个慢启动(slow start)机制。开始的时候,发送得较慢,然后根据丢包的情况,调整速率:如果不丢包,就加快发送速度;如果丢包,就降低发送速度。

    Linux 内核里面设定了(常量TCP_INIT_CWND),刚开始通信的时候,发送方一次性发送10个数据包,即”发送窗口”的大小为10。然后停下来,等待接收方的确认,再继续发送。

    默认情况下,接收方每收到两个 TCP 数据包,就要发送一个确认消息。”确认”的英语是 acknowledgement,所以这个确认消息就简称 ACK。

    ACK 携带两个信息。

    期待要收到下一个数据包的编号
    
    接收方的接收窗口的剩余容量
     
    • 1
    • 2
    • 3

    发送方有了这两个信息,再加上自己已经发出的数据包的最新编号,就会推测出接收方大概的接收速度,从而降低或增加发送速率。这被称为”发送窗口”,这个窗口的大小是可变的。

    这里写图片描述

    (图片说明:每个 ACK 都带有下一个数据包的编号,以及接收窗口的剩余容量。双方都会发送 ACK。)

    注意,由于 TCP 通信是双向的,所以双方都需要发送 ACK。两方的窗口大小,很可能是不一样的。而且 ACK 只是很简单的几个字段,通常与数据合并在一个数据包里面发送。

    这里写图片描述

    图片说明:上图一共4次通信。第一次通信,A 主机发给B 主机的数据包编号是1,长度是100字节,因此第二次通信 B 主机的 ACK 编号是 1 + 100 = 101,第三次通信 A 主机的数据包编号也是 101。同理,第二次通信 B 主机发给 A 主机的数据包编号是1,长度是200字节,因此第三次通信 A 主机的 ACK 是201,第四次通信 B 主机的数据包编号也是201。)

    即使对于带宽很大、线路很好的连接,TCP 也总是从10个数据包开始慢慢试,过了一段时间以后,才达到最高的传输速率。这就是 TCP 的慢启动。

    六、数据包的遗失处理

    TCP 协议可以保证数据通信的完整性,这是怎么做到的?

    前面说过,每一个数据包都带有下一个数据包的编号。如果下一个数据包没有收到,那么 ACK 的编号就不会发生变化。

    举例来说,现在收到了4号包,但是没有收到5号包。ACK 就会记录,期待收到5号包。过了一段时间,5号包收到了,那么下一轮 ACK 会更新编号。如果5号包还是没收到,但是收到了6号包或7号包,那么 ACK 里面的编号不会变化,总是显示5号包。这会导致大量重复内容的 ACK。

    如果发送方发现收到三个连续的重复 ACK,或者超时了还没有收到任何 ACK,就会确认丢包,即5号包遗失了,从而再次发送这个包。通过这种机制,TCP 保证了不会有数据包丢失。

    这里写图片描述

    (图片说明:Host B 没有收到100号数据包,会连续发出相同的 ACK,触发 Host A 重发100号数据包。)


    展开全文
  • 网络通信协议(互联网协议)

    千次阅读 2019-08-19 15:00:13
    一、操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件...2.1 互联网的本质就是一系列的网络协议 一台硬设有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用 像...

    一、操作系统基础

    操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
    注:计算机(硬件)->OS->应用软件

    二、网络通信原理

    2.1 互联网的本质就是一系列的网络协议

    一台硬设有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用
    像这样,每个人都拥有一台自己的机器,然而彼此孤立。
    在这里插入图片描述
    如何能大家一起玩耍
    在这里插入图片描述
    然而internet为何物?

    其实两台计算机之间通信与两个人打电话之间通信的原理是一样的(中国有很多地区,不同的地区有不同的方言,为了全中国人都可以听懂,大家统一讲普通话)
    在这里插入图片描述
    普通话属于中国国内人与人之间通信的标准,那如果是两个国家的人交流呢?
    在这里插入图片描述
    问题是,你不可能要求一个人/计算机掌握全世界的语言/标准,于是有了世界统一的通信标准:英语
    在这里插入图片描述
    结论:英语成为世界上所有人通信的统一标准,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列的协议,总称为“互联网协议”(Internet Protocol Suite)。

    2.2 osi七层协议

    互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
    在这里插入图片描述

    2.3 tcp/ip五层模型讲解

    我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议。就理解了整个互联网通信的原理。首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解。每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件。

    1>> 物理层

    物理层由来:上面提到,孤立的计算机之间要想一起玩,就必须接入internet,言外之意就是计算机之间必须完成组网。
    在这里插入图片描述
    物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。

    2>> 数据链路层

    数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思?

    数据链路层功能:定义了电信号的分组方式。

    以太网协议:
    早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet。
    ethernet规定:

    • 一组电信号构成一个数据包,叫做‘帧’
    • 每一数据帧分成:报头head和数据data两部分
    headdata
    源地址、目的地址、数据类型数据包具体内容
    固定18个字节最短46字节,最长1500字节

    mac地址:
    head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址。
    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
    在这里插入图片描述
    广播:
    有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)
    ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼。
    在这里插入图片描述

    3>>网络层

    网络层由来:有了ethernet、mac地址、广播的发送方式,世界上的计算机就可以彼此通信了,问题是世界范围的互联网是由一个个彼此隔离的小的局域网组成的,那么如果所有的通信都采用以太网的广播方式,那么一台机器发送的包全世界都会收到,这就不仅仅是效率低的问题了,这会是一种灾难!
    在这里插入图片描述
    上图结论:必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是,如果是就采用广播的方式发送,如果不是,就采用路由的方式(向不同广播域/子网分发数据包),mac地址是无法区分的,它只跟厂商有关。

    网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址。

    IP协议:

    • 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
    • 范围0.0.0.0-255.255.255.255
    • 一个ip地址通常写成四段十进制数,例:172.16.10.1

    ip地址分成两部分:

    • 网络部分:标识子网
    • 主机部分:标识主机

    注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网

    例:172.16.10.1与172.16.10.2并不能确定二者处于同一子网

    子网掩码:
    所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

    知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

    比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,

    172.16.10.1:10101100.00010000.00001010.000000001

    255255.255.255.0:11111111.11111111.11111111.00000000

    AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0

    172.16.10.2:10101100.00010000.00001010.000000010

    255255.255.255.0:11111111.11111111.11111111.00000000

    AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0

    结果都是172.16.10.0,因此它们在同一个子网络。

    总结一下,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

    4>>传输层

    传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。

    传输层功能:建立端口到端口的通信。

    tcp三次握手和四次挥手:
    在这里插入图片描述

    5>>应用层

    应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式 。

    应用层功能:规定应用程序的数据格式。

    例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。

    6>>socket

    我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程。

    能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,什么是socket呢?我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

    在这里插入图片描述

    三、网络通信流程

    五层协议应用(举例)
    应用层HTTP(浏览器)默认端口是80
    传输层TCP协议,需要设置双方的端口
    网络层IP协议,需要设置双方的路由IP(与网络有关)
    数据链路层以太网协议,需要设置双方的mac地址(与网络无关)
    物理层数字信号

    mac地址,也叫硬件地址,与网络无关。比如两台电脑直接通信。
    IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。

    四、TCP/IP协议

    由于TCP(传输层)和IP(网络层)非常重要,所以互联网协议又称为TCP/IP协议。

    IP表示:网络地址
    TCP表示:传输控制协议
    UDP表示:用户数据报协议

    TCP建立连接要进行3次握手:

    • 主机A 通过向主机B发送一个含有同步序列号的标志位的数据段给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我?
    • 主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用序列号作为起始数据段来回应我!
    • 主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B的数据段:“我已收到回复,我现在要开始传输实际数据了”

    TCP断开连接要进行4次:

    • 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
    • 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
    • 由B端再提出反方向的关闭请求,将FIN置1
    • 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束

    由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础。

    UDP协议:

    • UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
    • 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
    • UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
    • 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
    • UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。
    • UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

    我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。

    TCP与UDP的区别:

    • 基于连接与无连接;
    • 对系统资源的要求(TCP较多,UDP少);
    • UDP程序结构较简单;
    • 流模式与数据报模式 ;
    • TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

    UDP应用场景:

    • 面向数据报方式
    • 网络数据大多为短消息
    • 拥有大量Client
    • 对数据安全性无特殊要求
    • 网络负担非常重,但对响应速度要求高
    展开全文
  • 太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

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

    万次阅读 2019-04-17 08:08:59
    我们每天使用互联网,你是否想过,它是如何...互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。...
  • ipx互联网分组交换协议X.25 is a packet-switched network technology used long before ago. X.25 is one of the first packet-switched network used to transmit data between multiple hosts. In this tutorial,...
  • 常见协议以及对应端口 协议 端口 FTP协议:文件传输协议,用户使用FTP客户端通过FTP协议访问FTP服务器上的文件资源 20/21 SSH协议:安全外壳协议,专为远程登录会话和其他网络服务提供的安全性协议。能够...
  • 常见网络协议汇总

    万次阅读 多人点赞 2021-08-06 15:03:27
    本篇博客将对基于 TCP/IP的五层网络模型 的常见协议做以总结 ,目的通过这些具体的协议更深刻的认识整体网络的传输流程及相关网络原理 TCP/IP五层网络模型回顾 应用层:为用户为用户的应用进程提供网络通信服务 ...
  • 文章目录简介UDT协议UDT的缺点总结 ...UDP相对TCP协议而言,其特点就是简洁,它删除了在TCP协议中为了保证消息准确性的各种限制性特征。简洁带来的好处就是快!今天给大家讲解一下,基于UDP的高速数据传输
  • 网络---协议(TCP/IP五层模型)

    千次阅读 2022-03-23 11:21:36
    网络通信协议――>网络通信的数据的格式约定。 协议分层:一些组织为了能够实现网络互联,将复杂的网络通信环境,按照提供的不同的服务,使用的不同的协议接口划分为多层。 OSI七层模型(不实用)分为:应用层...
  • TCP/IP 协议

    千次阅读 2022-04-01 20:50:01
    TCP/IP作为Internet的核心协议,被广泛应用于局域网和广域网,TCP/IP 包含许多重要的基本特性,这些特性主要表现在5个方面: 1.逻辑编制:每一块网卡 在出厂时厂家分配了一个独一无二的永久性的物理地址,在...
  • 常见IoT 物联网协议最全讲解 一、什么是物联网? 物联网(Internet of Things)这个概念读者应该不会陌生。物联网的概念最早于1999年被提出来,曾被称为继计算机、互联网之后,世界信息产业发展的第三次浪潮,到...
  • 计算机网络 | 一文搞懂什么是TCP/IP协议

    万次阅读 多人点赞 2019-10-28 12:48:16
    什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,...也就是说,TCP/IP 是互联网相关各类协议族的总称。 TCP/IP 的分层管理 TCP/IP协...
  • 电子邮件(e-mail)传输协议和接收协议

    千次阅读 2021-08-01 03:58:57
    一、电子邮件传输协议SMTP:SMTP是Simple Mail Transfer Protocol的缩写,意思就是简单邮件传输协议,SMTP是一种提供可靠且有的电子邮件传输协议。SMTP是一种建模在FTP文件传输协议上的一种邮件服务,主要用于传输...
  • 自治系统与互联网的路由选择协议

    千次阅读 2018-03-04 19:25:43
    一、自治系统 互联网采用分层的路由选择协议,...一个自治系统最重要的特点是它有权选择在本系统内部采用何种路由选择协议。自治系统内部的路由选择成为域内路由选择(inter domain routing),自治系统之间的路由...
  • 物联网早的定义是:把所有物品通过射频识别等信息传感设备与互联网连接起来,实现智能化识别和管理。当然,物联网发展到今天,它的定义和范围已经有了扩展与变化,下面是现代物联网具有的特点。
  • 对于物联网,最重要的是在互联网中设备与设备的通讯,现在物联网在internet通信比较常见的通讯协议包括:HTTP、websocket、XMPP、COAP、MQTT 1、HTTP和websocket 在互联网时代,TCP/IP协议已经一统江湖,现在的...
  • 计算机网络重要协议汇总及解释笔记

    万次阅读 多人点赞 2019-10-29 11:24:39
    协议由两层组成: TLS 记录协议(TLS Record)和 TLS握手协议(TLS Handshake)。 TLS握手协议 TLS握手协议使双方(服务器和客户端)在应用协议层(如HTTP,SMTP等)传输或接收到数据的第一个字节前,就记录层...
  • 互联网协议入门(一)

    千次阅读 2018-04-02 16:57:25
    我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很...
  • 计算机网络基础之TCP/IP协议

    千次阅读 2022-01-26 09:47:32
    2.当数据在源终端设备沿协议栈向下传递,对其分段和封装。 3.在协议栈网络接入层的介质上生成数据。 4.通过由介质和任意中间设备组成的网际层网络传输数据。 5.在目的终端设备沿协议栈向上传递时对其解封和...
  • 电子邮件有哪两个协议

    千次阅读 2021-07-31 10:15:19
    电子邮件有SMTP和POP3两个协议,MSTP是发送,使用25号端口,POP3是接收...SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用S...
  • 在这些协议中最重要、最著名的就是TCP和IP。31年后,根据他们在便签本上进行的工作,美国计算机联盟决定将计算机界的诺贝尔奖——2004年度图灵奖授予他们。 IP地址可以让你在全球互联网中联系任何一台你想要...
  • 互联网医生-ICMP协议

    千次阅读 2020-12-09 10:18:11
    在《IP协议详解》入门文章,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是网际报文控制协议(InternetControl Message ...
  • 网络通信原理_互联网通信协议

    千次阅读 2019-05-23 18:19:02
    Internet实际上就是统一的标准,称为互联网协议(Internet Protocol Suite)。 互联网协议的功能:定义计算机如何接入Internet,以及接入internet的计算机通信的标准。 互联网协议按照功能不同分为tcp/ip四层或tcp...
  • 我们每天都在使用互联网,更有很多的是依靠互联网来维持公司的正常运作、来维持人们的日常的生活,但你是否想过,互联网的信息传递是如何实现的呢?全世界几十亿台电脑,连接在一起,两两通信。在中国的某一块网卡送...
  • 本文主要参考了谢希仁编著的计算机网络第八版的第四章内容,详细介绍了网络层的重要概念和提供的服务,还有路由器的结构。重点介绍了IP协议的概念和IP转发,还包括了ARP协议
  • 首先介绍下背景。...一、CCP协议CCP通信协议:  主从式,主设备通过CAN总线与多台从设备相连,主设备室测量标定系统 ,从设备是需要标定的ECU,主设备首先与其中一个从设备建立逻辑连接,主、从设备之间的
  • 详细介绍了HTTP协议及HTTPS的加密过程

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,016
精华内容 60,406
关键字:

互联网协议中最重要的协议是