linux 网络

来源:互联网 发布:为知笔记导出 苹果 编辑:程序博客网 时间:2024/05/17 23:13

一.    基本概念

1.    网络:用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。分为广域网,城域网,局域网。

2.    端口:
      3.    Mac地址:数据链路层,以太网头部中,用来识别同一链路中的不同计算机的,每个计算机出厂时设定的独一无二的长度为48个二进制位的网卡号,通常用12个16进制位表示。

二.    OSI七层模型及TCP/IP四层网络模型

1.     OSI七层模型:(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 

     2.     TCP/IP四层网络模型

      3.     关系

               

 4.     网络数据包封装与分用:

                                

       如图所示从上到下的过程为数据的封装,从下到上为数据的分解,A主机上某应用的数据通过一层层的封装,通过网线到达目标主机,再一层层分解与目标主机进行信息对比找到对应引用进程。

       如下为最低层的封装格式:

            

三.     协议:网络协议的简称,是通信计算机双方必须共同遵从的一组约定

1.     IP协议

 a.    IP:Internet Protocol(网络之间互连的协议),中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。

 b.    IP地址:网络层,IP头部里,用于识别网络中的主机和路由器,

                   

        子网掩码:子网掩码(subnet mask)又叫网络掩码,地址掩码,子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

         通过IP地址与子网掩码结合,可获取所属子网,再在子网内部根据Mac地址找到对应主机

c.    IP封装及头部结构:

                      

2.     udp协议

a.    udp:User Datagram Protocol用户数据报协议,UDP是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。

                

b.    相关函数


     c.    udp头部结构


                   

3.     tcp协议:Transmission Control Protocol传输控制协议,TCP是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议。

             

a.    相关函数


      b.    tcp头部结构及封装

        如下为tcp头部结构:

                               

      如下为tcp头结构的选项部分结构:


                               

      如下为具体的tcp报封装过程:


                       

c.    三次握手四次挥手过程

                        

       三次握手为什么必须是三次,不能是两次或者是四次,三次握手什么时候可能报错?

       tcp是面向连接的服务,两诸暨之间要建立可靠连接的过程就如同你认识人的过程一样,你好,我叫A;你好,我叫B;奥,很高兴认识你。你和他打招呼,他要回应你,对话才能继续下去,而他反应你之后,你要让他知道你收到他的回应,所以两次不可以,在经过三次反复交流后,已经相互认识,就开始交谈,而 网络就开始数据传输。四次也不是不可以,只是交互越多,就越复杂,就会越费事费空间。三次握手过程当目标ip或端口出错时,会报错,无法建立连接。

                                           

       tcp连接断开为何是四次,什么是半打开状态?

       因为此过程就如同你和别人相约去某地玩,结束时,他给你说,我回家了啊;你说,奥;我也回家啊,再见;他说,再见。他说完想法,你首先要表示听到, 反应后,你也说出自己对此事的看法,他也给出反应表示他听到了,当然如果在他他提出这个提议是你也提出这个提议,则变成,你说,我回了;他说,好的,我 也回,再见;他说再见;此时,二三步结合,便成了三次,但这也是特殊情况。在四次已经可以满足要求的情况下,再多不过是浪费时间空间。

       半打开状态:是指当客户端(服务器端)突然关闭或异常断开,而服务器端(客户端)没有收到FIN请求,仍保持连接状态,即使此时客户端(服务器)重新 运行,也无法找到原连接,的这种情况。

d.    tcp可靠连接,应答确认,超时重传,滑动窗口

       应答确认:由于TCP要进行可靠的数据传输,所以TCP在接到数据段后要对其进行校验,并且向发送方反馈确认消息.如果发送方没有接受到这样的确认消息,TCP将尝试重新发送数据.此便为应答确认,通过确认防止数据错误,是否丢等。

       超时重传实现机制:四种计时器,即重传计时器、坚持计时器、保活计时器和时间等待计时器。

       A、重传计时器   
             当TCP发送报文段时,就创建该特定报文段的重传计时器 。可能发生两种情况:

            (1)、若在计时器截止时间到( 通常是60秒 )之前收到了对此特定报文段的确认,则撤销此计时器。

            (2)、若在收到了对此特定报文段的确认之前计时器截止期到,则重传此报文段,并将计时器复位

       B、坚持计时器   

             当发送TCP收到一个窗口大小为零的确认时,就启动坚持计时器当坚持计时器期限到时,发送TCP就发送一个特殊的报文段, 叫做探测报文段 。这个报文段只有一个字节的数据。它有一个序号,但它的序号永远不需要确认;甚至在计算对其他部分的数据的确认时该序号也被忽略。探测报文段提醒对端:确认丢失,必须重传。  

       C、保活计时器   

             保活计时器使用在某些实现中,用来防止在两个TCP之间的连接出现长时期的空闲

             每当服务器收到客户的信息,就将计时器复位。保活计时器 通常设置为2小时。若服务器过了2小时还没有收到客户的信息,它就发送探测报文段。若发送了10个探测报文段(每一个相隔75秒)还没有响应,就假定客户出了故障,因而就终止该连接。  

       D、时间等待计时器   

             时间等待计时器是在连接终止期间使用的

             当TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭了。在时间等待期间中,连接还处于一种中间过渡状态。这就可以使重复的FIN报文段(如果有的话)可以到达目的站因而可将其丢弃。这个计时器的值通常设置为一个报文段的寿命期待值的两倍

             超时重传的原理图:当报文丢失,ACK丢失,或未对ACK做出反应,而引起的异常,发送发等待时间超过RTO时,发送方便重发。

                                     


        滑动窗口;


                               


         特点:

          以字节为单位的滑动窗口

          A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)

         要求:

         TCP 标准没有规定对不按序到达的数据应如何处理.通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程

         TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销


          举例说明滑动窗口的实现过程:

                                                          

                         具体查看:http://www.cnblogs.com/kzloser/articles/2582957.html

 e.    tcp拥塞控制,慢启动,拥塞避免,快速恢复,快速重传



       慢启动:刚进入网络时,不知网络状况,便慢慢启动以防突然的增加造成网络拥塞。

       拥塞避免:当拥塞窗口值达到ssthresh初始值时,便通过相应算法,采用加法增大方法避免网络拥塞,当拥塞窗口值持续增加达到最大时,便根据相应算法,采用乘法减小方法避免拥塞。

       快速重传:当连续收到三个重复的确认报文,则认定为网络拥塞,此时立即重新发送报文。

       快速恢复:拥塞避免过程中当拥塞窗口值达到新的ssthresh的值时,采用加法增大快速回复。

 f.    状态转移图

     

        什么是TIME_WAIT,存在的理由是?

         当主动关闭的一方收到对方的确认回应,再收到对方的关闭报文后,便转换为此状态。

         理由一:可靠的终止tcp连接。

         理由二:保证迟来的tcp报文有时间被识别并丢弃。

3.  tcp与udp关系


            


四.     网络相关命令


          curl     wget     tcpdump     telnet     ping     arp     netstat      ifconfig      tracepath      ifdown      ifup      dhclient       ip        route       setup       mtr      host     traceroute      whois    ifpiugstatus  




原创粉丝点击