了解下TCP和UPD协议

参考:https://www.cnblogs.com/fundebug/p/differences-of-tcp-and-udp.html

           https://www.cnblogs.com/baizhanshi/p/8482612.html

           https://blog.csdn.net/weixin_36219512/article/details/79939318

 

 

一.不同协议的定义

     1.协议组:TCP/IP,可分为网络层,传输层和应用层:

         网络层协议:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。

         传输层协议:TCP协议和UPD协议

         应用层协议:FTP、HTTP、TELNET、SMTP、DNS等协议。

      2.IP协议:

                    (1) IP(Internet Protocol)协议的英文名直译就是:因特网协议。从这个名称我们就可以知道IP协议的重要性。

                    (2)在现实生活中,我们进行货物运输时都是把货物包装成一个个的纸箱或者是集装箱之后才进行运输,在网络世界中各种信息也是通过类似的方式进行传输的。

                    (3)IP协议规定了数据传输时的基本单元和格式。如果比作货物运输,IP协议规定了货物打包时的包装箱尺寸和包装的程序。 除了这些以外,IP协议还定义了数据包的递交办法和路由选择。同样用货物运输做比喻,IP协议规定了货物的运输方法和运输路线。

 

      3.ICMP协议:

                  (1)互联网控制消息协议(Internet Control Message Protocol,简称:ICMP)是一种面向连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。

                  (2)它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

                  (3)详细请看参考:https://baike.sogou.com/v25298.htm?fromTitle=ICMP%E5%8D%8F%E8%AE%AE

     4.ARP协议:

                   RP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。

                   在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。  但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。

                   所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

      5.RARP协议:

                  基本内容:英文原义:A Reverse Address Resolution Protocol中文释义:(RFC-903)逆向地址解析协议

             注解:就是将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。

             应用:RARP协议广泛用于获取无盘工作站的IP地址。

                  原理:

                          1. 发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;

                     2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;

                     3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;

                     4. 如果不存在,RARP服务器对此不做任何的响应;

                     5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

 

         6.BOOTP协议:

                  它是一个基于TCP/IP协议的协议,它可以让无盘站从一个中心服务器上获得IP地址,现在我们通常使用DHCP协议进行这一工作。

 

        7.TCP协议

                概念:TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流运输层Transport layer)通信协议,

                          由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。

                参考:https://baike.sogou.com/v20113.htm?fromTitle=TCP%E5%8D%8F%E8%AE%AE

                图解:

                        

 

             

               服务类型(具体的运用):

                    1.FTP 文件传送(File Transfer)

                    2.RLogin 远程登录(Remote login)

                    3.SMTP POP3 电子邮件(Mail)

                    4.NFS 网络文件系统(Network File System)

                    5.远程打印(Remote Printing)

                    6.远程执行(Remote Execution)

                    7.名字服务器(Name Servers)

                    8.终端服务器(Terminal Servers)

           格式(注:如果不计任选(Options)字段,那么,它的大小是20个字节。):

                

 

         建立连接(也就是我们说的三次握手):

            

 

       

              TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

               第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。

               第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。

               第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established状态,完成三次握手。

 

        终止连接(四次握手):

               

 

 

      

   

         特点:

               1.TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。

 

               2.TCP提供一种面向连接的、可靠的字节流服务。

               3.面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。

               4.在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。

                TCP通过下列方式来提供可靠性:

                          1.应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)TCP如何确定报文段的长度。

                          2.当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒

                         3.TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。

                         4.既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

                         5.既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。

                         6.TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出

                                            两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服务(bytestreamservice)。

                                            如果一方的应用程序先传10字节,又传20字节,再传50字节,连接的另一方将无法了解发方每次发送了多少字节。

                                            收方可以分4次接收这80个字节,每次接收20字节。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。

                          7.TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCⅡ字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。

                              这种对字节流的处理方式与Unix操作系统对文件的处理方式很相似。Unix的内核对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对Unix的内核来说,它无法区分一个二进制文件与一个文本文件。

         

       优点:

 

             1.面向连接的传输;

             2.端到端的通信;

             3.高可靠性,确保传输数据的正确性,不出现丢失或乱序;

             4.全双工方式传输;

             5.采用字节流方式,即以字节为单位传输字节序列;

             6.紧急数据传送功能。

 

      8.UDP协议:

            1.介绍:Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。

                       UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。RFC 768描述了 UDP。

                       Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的的事情。

                       面向连接的是TCP,该协议几乎做了所有的事情。

            2.适用场景:

                     在选择UDP作为传输协议时必须要谨慎。在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重。

                     但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,

                     因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用的ICQ和QQ就是使用的UDP协议。

             3.参考:       

           TCP协议和UDP协议比较: 

                            1,TCP协议面向连接,UDP协议面向非连接

                            2,TCP协议传输速度慢,UDP协议传输速度快

                            3,TCP协议保证数据顺序,UDP协议不保证

                            4,TCP协议保证数据正确性,UDP协议可能丢包

                            5,TCP协议对系统资源要求多,UDP协议要求少

       9.FTP协议

          介绍:同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序

                     依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。

                     用户要连上FTP服务器,就要用到FTP的客户端软件,通常Windows自带“ftp”命令,这是一个命令行的FTP客户程序,

           常用的ftp登录软件:常用的FTP客户程序还有FileZilla、CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。

           图解:

                 

 

 

            FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。

            了解更多参考:https://baike.sogou.com/v353433.htm?fromTitle=ftp%E5%8D%8F%E8%AE%AE

       10.HTTP协议

            介绍:超文本传输协议(英语:HyperText Transfer Protocol),缩写为HTTP,它是一种用于分布式、协作式和超媒体信息系统的应用层协议,

                       是万维网的数据通信的基础,也是互联网应用最为广泛的一种网络传输协议。 最初设计HTTP的目的是为了提供一种发布和接收HTML页面的方法。

            发展史:HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起,标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,

                          目前HTTP协议中最广泛使用的版本是HTTP 1.1。

            详细(理解下TCP和HTTP):

                         1.HTTP是一个 客户端和 服务器端请求和应答的标准(TCP)

                         2.客户端是终端用户,服务器端是网站。通过使用 Web浏览器网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认 端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。

                             应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。

 

                        

                         注:在用户代理和源服务器中间可能存在 http多个中间层,比如代理,网关,或者隧道(tunnels)。

                                图解:

                                    

 

 

 

                         3.尽管 TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。

                            事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。

 

                         4.过程

                            (1)由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是 80端口)的TCP连接。

                            (2)HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。httpHTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。

       11.TELNET协议

       12.SMTP协议

       13.DNS协议

 

posted @ 2020-08-10 13:12  小窝蜗  阅读(897)  评论(0)    收藏  举报