zoukankan      html  css  js  c++  java
  • 连接服务器TCP/IP杂记

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正

        1.TCP/IP四层模型:应用层(Telnet、ftp、snmp和smtp等)、传输层(TCP/UDP)、网络层(IP、ICMP和IGMP)和链路层(设备驱动程序和网络接口卡)。(P1)

         

        2.在TCP/IP协议族中,网络层IP供给的是一种不可靠、无连接的数据报传送服务。也就是说,它只是尽可能快地把分组从源节点送到目的节点,但是其实不供给任何可靠性保障。如果产生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处置算法:抛弃该数据报,然后发送ICMP消息报给信源端,任何要求可靠性必须由下层来供给(TCP)。

              而另一方面,TCP在不可靠的IP层上供给了一个可靠的传输层。为了供给的这类可靠的服务,TCP采取了超时重传、发送和接收端到端的确认分组机制。(P3、P24)

         

        3.以太网格式(如下图),可以看出除了以太网14字节首部,以太网帧数据要求在46与1500字节之间。(P16)

         

        连接和服务器

         

        4.TCP和UDP采取16位的端口号来识别应用程序,分离包含源端口和目的端口。其中,服务器一般都是通过知名端口号来标识的。例如,FTP服务器的TCP端口21,Telnet服务器的TCP端口23,TFTP服务器的UDP端口69。任何TCP/IP实现所供给的服务都用知名的1到1023之间的端口号。(P9)

         

        5.由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP首部中有标识(8Bit)标记数据属于哪一层。1表示ICMP,2表示IGMP,6表示TCP协议,17表示UDP协议;TCP和UDP首部端口号标识不同的应用程序;网络接口层分离要发送IP、ARP和RARP,因此也必须在以太网的帧首部参加标识(16bit)。(P7)

         

        6.最大传输单元(MTU)表示各种网络对数据帧长度的制约。如果传送的数据比链路层的MTU要大,则IP层就要进行分片。典型的网络最大值:以太网(1500字节)、IEEE802.3/802.2(1492=1500-8)、X.25(576)、点对点(296)。(P21)

         

        7.IP首部中的TOS字段(4bit):最小时延、最大吞吐量、最最高可靠性和最小费用。不同应用的TOS提议值:Telnet/Rlogin要求最小的传输时延。因为人们主要用它来传输少许的交互数据。另一方面,FTP文件传输则要求有最大的吞吐量。最高可靠性则被明给网络管理(SNMP)和路由选择协议。用户网络新闻(NNTP)是唯一要求最小费用的应用。(P25)

         

        8.子网寻址,IP地址包含网络号和主机号,将主机号在划分为子网号和主机号。子网对外部路由器来说隐藏了内部网络组织的细节,Internet数据可以先发送到gateway,然后再由gateway传送到响应的子网路由器,但是子网对于子网内部的路由器是不透明的。(P31)

        每日一道理
    我把卷子摊在课桌上,恨不得敲一阵锣,叫大家都来看看我这光彩的分数。

         

        9.Icmp差错报文(P57)

         

        连接和服务器

         

        10.TCP供给一种面向连接、可靠的字节流服务。TCP为应用层供给全双工服务,首先应通过3次握手建立连接(同时打开时须要4次握手),结束后应该4次握手来结束发送和接收通道的连接(同时关闭也只须要4次握手)。(P176~P177)

         

        11.2MSL等待状态:TIME_WAIT状态也成为2MSL等待状态。每个详细TCP/IP实现必须选择一个报文段最大生存时间MSL(Maximum Segment Lifetime)。它是任何报文段被抛弃之前在网络内的最长时间。

               对一个详细实现所给的MSL值,处置原则:当TCP执行一个主动关闭,并发还最后一ACK,该连接必须在TIME_WAIT状态停顿的时间为2倍的MSL。这样可让TCP再次发送最后的ACK以防之前发送的ACK丢失。这个TIME_WAIT停顿期间,定义这个连接的插口(客户的IP地址和端口号、服务器的IP地址端口号)不能再被应用。这个连接只能在2MSL状态结束后才能再被应用(在连接处于2MSL期间,任何迟到的报文段将被抛弃)。

               对于客户端程序来说,暗示当我们终止一个客服程序,并立即重新启动这个应用程序,则这个客户程序将不能重用相同的本地端口。服务器一般处于主动关闭状态,不进入TIME_WAIT状态。对于服务器,情况有所不同,因为服务器应用知名端口。如果我们终止一个已建立连接的服务端程序,并试图立即重启,服务器程序将不能把它的这个知名端口赋值给它的端口,因为那个端口处于2MSL连接的一部分。在重启服务器程序前,须要在1~4分钟。(P186)

         

        12.无论何时一个报文端发往基准连接出现错误,TCP都市发出一个复位报文段(TCP首部中的RST比特置位)。常见情况是当连接请求达到时,目的端口没有进程正在听;通过发送RST报文段而不是FIN来半途释放一个连接,偶然称这位异常释放。(P187)

         

        13.半打开连接:如果一方已关闭或异常终止连接而另一方却不知道,称这样的连接为半打开连接。任何一端的主机异常都可能致使产生这类情况。只要不打算在半打开连接上传输数据,仍处于连接状态的一方就不会检测到另一方已出现异常。(P189)

         

        14.MSS最大报文长度表示TCP传往另一端的最大数据块长度。当建立一个连接时,连接的两边都要通告各自的MSS。当TCP发送一个SYN时,或者因为一个本地应用进程想发起一个连接,或者是因为另一端的主机收到了两个连接请求,它能将MSS值设为外出接口上的MTU长度减去牢固的IP首部和TCP首部。对于以太网,MSS值可达1460字节(1500-40)。应用IEEE802.3的封装,它的MSS可达1452(1500-40-8,为什么减8参见P16)。(P179)

          

         

        

        待续。。。。。

        

    文章结束给大家分享下程序员的一些笑话语录: 古鸽是一种搜索隐禽,在中国快绝迹了…初步的研究表明,古鸽的离去,很可能导致另一种长着熊爪,酷似古鸽,却又习性不同的猛禽类——犤毒鸟

  • 相关阅读:
    JavaWeb之Ajax快速入门(十九)
    JavaWeb之文件上传与下载&邮件技术(十八)
    JavaWeb之Filter快速入门(十七)
    JavaWeb之JDBC分页/监听器(十六)
    JavaWeb之JDBC&自定义框架/DBUtil(十五)
    JavaWeb之JDBC(十四)
    JavaWeb之JDBC学习(十三)
    JavaWeb之Mysql代码练习(十二)
    [ 校内OJ ] NOIP2019模拟赛(五)
    【一本通】欧拉回路
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3074243.html
Copyright © 2011-2022 走看看