精华内容
下载资源
问答
  • 计算机网络通信概述题库

    万次阅读 多人点赞 2018-07-30 23:17:19
    1、以下对单工通信说明正确的是: A、 允许在两个方向上同时传输 B、 任何时候只允许在一个方向上传输C、 任何时候只允许按照一个方向传输 D、 允许双方交替地向对方传输信息2、考虑语音信道带宽为1000赫兹,信噪比...

    目录

     

    附加知识:

    网络课课后题:

    王道与其他


    附加知识:

    网络课课后题:

    1、以下对单工通信说明正确的是:
     A、 允许在两个方向上同时传输
     B、 任何时候只允许在一个方向上传输
     C、 任何时候只允许按照一个方向传输
     D、 允许双方交替地向对方传输信息
    2、考虑语音信道带宽为1000赫兹,信噪比为20分贝。请问该信道的容量为( 6658.2) bps。(保留至小数点后一位)

    参考:

                     

     3、噪声的度量单位是
     A、 分贝
     B、 瓦特
     C、 信噪比
     D、 毫瓦分贝

    解析:

             

    4、不归零编码相比于归零编码带宽利用率(高),同步能力(低)

    解析:

             

     5、下列属于调制解调技术的有:
     A、 将数字数据转换为数字信号
     B、 将模拟数据转换为模拟信号
     C、 将数字数据转换为模拟信号
     D、 将模拟数据转换为数字信号

    解析:

    调制解调:将低频信号变换成高频信号

    调制:数据变换成模拟信号

    编码:数据变换成数字信号

    6、载波频率的选择可以与传输介质不兼容。(F)

    解析:

    7、下列属于调制技术的有:
     A、 调频
     B、 调相

     C、 调整
     D、 调幅

    解析:

    8、下列说法错误的是:
     A、 模拟数据的数字化精度和数据内容有关
     B、 模拟数据经数字化后可以被数字传输或模拟传输
     C、 模拟数据被调制到更高频模拟信号上无法获得更大的线路利用率
     D、 数字化是计算机处理模拟数据的前提


    9、各用户可以使用相同频率载波发送信息的多路复用技术是:
     A、 FDM(频frequency分)
     B、 WDM(波wave分)
     C、 TDM(时time分)
     D、 CDM(码code分)

    10  模拟数据的取值为一定范围的离散值。(F)

    解析:

    11   振幅反映   c ,周期频率反映    ,相位反映   b   。(请填入小写字母,答案用空格隔开)

    a.单位时间内完成的周期数

    b.初始的波形相对状态

    c.信号的强度

    解析:周期信号的三个特征

    12 保真度表示接收到的信号与发出的信号比较,两者间的差异有多大。(T)

    13   双绞线使用缠绕在一起的铜芯电线原因是:

    A、增加信号传输距离

    B、增加信号传输距离

    C、增加单位体积可容纳铜线数量

    D、减少不同电线间和外界的干扰

    14  信号强度的单位是:

    A、分贝

    B、毫瓦分贝

    C、瓦特

    D、信噪比

    15 信号的幅度降低称为失真(衰减)(F)

    解析:

    16 波特率表示信号速率,比特率表示数据传输速率。(T)

    解析:

    17  根据尼奎斯特准则,给定任意一个数字信道,其容量没有上限。(T)

    解析:

    18  根据香农定律,给定任意一个信噪比确定的模拟信道,其容量有上限。(F)

    解析:

    19  一个信道每1/8s采样一次,传输信号共有16种变化状态,则最大数据传输速率是:32 bit/s

    解析:每秒数8次采样。

    20

    若上图为10 BaseT网卡(采用曼切斯特编码)接收到的信号波形,则该网卡收到的比特串是:

    A、00110001

    B、01010010

    C、11001001

    D、10101101

    解析:曼切斯编码    1 = 从低变到高,0从高变到低

    21 以下哪种数字数据编码方式属于自含时钟编码

    A、曼彻斯特编码

    B、二进制编码

    C、脉冲编码

    D、非归零码

    22  下列哪一项是基带传输三种调制方式之一的调频的特点:

    A、抗衰落和抗噪声性能优于调幅,设备简单易实现

    B、对噪声的抗干扰性和频率利用率等方面都具有明显的优势

    C、调制后的信号具有周期信号的特征

    D、受到系统增益的影响,频率利用率低

    解析:

    23  高频正弦型信号因其形式简单、易于产生,它的三个参量(振幅、周期、相位)特征比较明显,常被选为调制解调中的载波。(T)

     

    24  数字化过程的步骤为:采样,量化,编码

    解析:

    数字化:将模拟信号转换成数字信号的过程。

    25  要使得信号采样后不失真并能还原,采样频率必须大于信号最高频率的两倍(T)

     

    26  在数字化过程的采样中,抽样后的样值序列是脉幅调制信号,脉幅调制信号是:模拟信号

    解析:

    27  以信道传输时间作为分割对象,通过多个信道分配互不重叠的时间片的方法来实现多路复用技术的是:TDM

     

    28  正交频分多路复用信号重叠会产生干扰。(F)

    解析:

    29  频分多路复用必须保证各路信号互不重叠。(T)

    解析:

    30  时分多路复用中,每个子信道在自己的时间片内可以使用全部带宽。(T)

    解析:

    王道与其他

    10. 下列说法正确的是:

    A.  信道与通信电路类似,一条可通信的电路往往包含一个信道

    B.  调制就是把模拟数据转换为数字信号的过程(模拟信号)

    C.  信息传输速率是指通信信道上每秒传输的码元数(数字通信系统每秒所传输的二进制码元个数)

    D.  在数值上,波特率等于比特率与每符号含的比特数的比值

    解析:信道!=通信电路。一条可双向通信的电路往往包含两个信道:发送信道和接收信道。

              多个用户共用通信电路时,每个用户在该通信电路都会有一个信道。

              

    11. 影响信道最大传输速率的因素主要有:信道带宽和信噪比

          

          

    12. 被用于计算机内部的数据传输的是:

    A. 串行传输     B. 并行传输          C. 同步传输           D. 异步传输     

    解析:同步传输和异步传输是通信方式,不是传输方式

    13. 关于曼彻斯特编码的叙述正确的是:

    A. 每个信号起始边界作为时钟信号有利于同步

    B. 将时钟与数据取值都包含在信号中

    C. 这种模拟信号的编码机制特别适合于传输声音

    D. 每位的中间不跳变表示信号的取值为0

    解析:

    1:从低变到高

    0:从高变到低

    (也可以采用相反的规定)

    位中间的跳变即作时钟信号,又作数据信号。

    声音是模拟数据,而曼彻斯特编码最适合传输二进制数字信号

    14. 

    解析

    10BaseT即10Mb/s的以太网,采用曼彻斯特编码,将一个码元分成两个相等的间隔。

    1:从高变到低

    0:从低变到高

    (也可以采用相反的规定)

    答案可为00110110          11001001

    15. 不含同步信息的编码:

    A. 非归零码          B. 曼彻斯特编码         C.差分曼彻斯特编码

    解析:

    不归零编码:

    不归零反转编码

    曼彻斯特编码

    差分曼彻斯特编码

    非归零编码每个码元之间没有间隔标志,不包含同步信息。

    曼彻和差分曼彻都是将一个码元分成两个相等的时间间隔,将每个码元的中间跳变作为收发双方的同步信息。

    16. 在网络中,把语音与计算机产生的数字,文字,图形与图像同时传输,必须先把语音信号数字化。下列可以把语音信号数字化的技术是:

    A. 曼彻斯特编码                  

    B. QAM                  

    C. 差分曼彻斯特编码

    D. 脉冲编码调制(Pluse Code Modulationg)

    解析:

    17. 利用模拟通信信道传输数字信号的方法称为:

    A. 同步传输   B. 异步传输     C. 基带传输     D. 频带传输

    解析:

    基带传输:将基带信号直接传送到数字信道上传输

    频带传输:将基带信号经过调制后送到模拟信道上传输

    18. 波特率等于:

    A. 每秒传输的比特数

    B. 每秒可能发生的信号变化次数

    解析:

    (1)每秒2,400位的比特率是指每一秒钟传输了2,400个1和0

    (2)波特率:每秒钟一个信号(从0变为1或从1变为0)或符号(连接的电压、频率或相位)在通信通道中改变状态或发生变化的次数。

    模拟电话调制解调器要比数字通信手段简单一些,1个符号(波数)传输1个位。为了提高通信速度,更高级的调制解调器会使用能在一个符号中发送多个位的调制技术。如一个波特状态改变一次,传输4位,此时,波特率等于1/4的比特率。

    波特率 (符号率)= 比特率(每秒传输的比特数)/每符号含的比特数(每码元含的比特数)

    19. 一个以太网数据的波特率是40MBaud,那么其数据率是:20Mb/s

    解析:以太网采用曼彻斯特编码,每传输一位数据需要2个脉冲信号,因此波特率是数据率的2倍。40/2=20。

    20. 某信道的波特率为1000Baud,若令其数据传输速率达到4kb/s,则一个信号码元所取的有效离散值个数为:16

    解析:波特率 (符号率)= 比特率(每秒传输的比特数)/每符号含的比特数(每码元含的比特数)

    1000 = 4000/每符号含的比特数(每码元含的比特数)

    每符号含的比特数(每码元含的比特数) = 4bit

    有效离散值个数 = 2(4)=16

    21. 已知某信道的信号传输速率是64kb/s,一个载波信号码元有4个有效离散值,则该信道的波特率为:32k Baud

    解析:2(2) = 4

    则每符号含的比特数(每码元含的比特数)= 2bit

    波特率= 64/2=32

    22. 有一条无噪声的8kHz信道,每个信号包含8级,每秒采样24k次(无意义),那么可以获得的最大传输速率是:

    A.  24kb/s            B. 32kb/s                    C.  48kb/s                     D.72kb/s

    解析:无噪声的信号满足Nyquist奈奎斯特准则C=2*8000*log2(8)=48000

    23. 某带宽为4000Hz的低通信道,采用16种不同的物理状态来表示数据。按照奈奎斯特定理,信道的最大传输速率是:32kb/s

    解析:C = 2 * 4000 *log2(16) =8000 * 4 = 32000

    24. 二进制信号信噪比为127:1(数字表示形式)的4kHz信道上的传输,最大数据率可达到:8000b/s

    解析:若给出了码元与比特数之间的关系,则需受两个公式的限制。

    奈氏准则是在理想条件下推导出来的。实际条件下,最高码元传输速率要比理想条件下得出的数值要小很多。

    C = 2 * 4000 log2(2) = 8000b/s

    香农定理给出了信息传输速率的极限。

    信道的带宽W或信道中的信噪比越大,则信息的极限传输速率就越高。

    C = 4000 * log2(1+127) = 28000b/s

    两个上限取最小的。

    25. 信噪比为S/N,为什么还要取对数10log10(S/N)?

    (1)数字形式表示,也就是一般的数值。如噪声功率N为1,信号功率S为100,信噪比为100/1=100

    (2)分贝形式表示,10log10(100) = 20dB

    两者的区别在于,前者是没有单位的,后者必须加dB,代表分贝。两者数值等价。

    分贝对于表示特别大或者特别小的数值极为有利。

    26. 电话系统的典型参数是信道带宽为3000Hz,信噪比为30dB,则该系统的最大数据传输速率为:30kb/s

    S/N = 1000

    C = 3000 * log2(1+1000)

    27. 采用8种相位,每种相位各有两种幅度的QAM调制方法,在1200Baud的信号传输速率下能达到的数据传输速率为:4800b/s

    解析:每个信号可以有8 * 2 = 16种变化,每个码元携带log2(16) = 4bit的信息

    C = B * log2(16) = 1200 * 4 = 4800b/s

    28.  (2011年计算机联考真题)

    若某通信链路的数据传输速率为2400b/s,采用4相位调制,则该链路的波特率是:1200Baud

    解析:B = C / log2(4) = 1200Baud

    29.  (2009年计算机联考真题)

    无噪声的情况下,若某通信链路的带宽为3kHz,采用4个相位,每个相位具有4种振幅的QAM调制技术,则该通信链路的最大数据传输率是:24kb/s

    解析:

    C = 2 * 3000 * log2(4*4) = 24000

    30. 一个信道每1/8s采样一次,传输信号共有16种变化状态,最大数据传输率为:32b/s

    解析:采样周期 T = 1/8,        采样频率 f = 8 Hz

    有16种变化状态的信号可携带4bit数据     8 * 4 =32

    31. 将1路模拟信号分别编码为数字信号后,和另外7路数字信号采用同步TDM方式复用到一条通信线路上。1路模拟信号的频率变化范围为0~1kHz,每个采样点采用PCM方式编码为4位的二进制数,另外7路数字信号的数据率均为7.2kb/s。复用线路需要的最小通信能力是:64kb/s

    解析:

    采样定理:采样频率必须大于等于原始信号中的最大频率f的两倍。

    1路模拟信号的最大频率为1kHz,所以采样频率至少为2kHz,每个样值编码为4位二进制数,所以数据传输速率为8kb/s。

    复用的每条支路速率要相等,而另外7路数字信号的速率低于8kb/s,所以均要采用脉冲填充方式,将速率提高到到8kb/s,然后将这8路信号复用,需要的通信能力为 8kb/s * 8 = 64kb/s

    32. 用PCM对语音进行数字量化,如果将声音分为128个量化级,采样频率为8000次/秒,那么一路话音需要的数据传输率为:56kb/s

    解析:

    量化:把样值信号的无限多个可能的取值,近似地用有限个数的数值来表示。

    量化级:把样值信号的瞬时幅度分成多个度量单位,一个度量单位称为一个量化级,用量化级的大小来表示瞬时样值。

    声音信号需要128个量化级,每采样一次需要log2(128)= 7bit来表示,每秒采样8000次, 7 * 8000 = 56000

    33. 若连接R2和R3链路的频率带宽为8kHz,信噪比为30dB,该链路实际数据传输速率约为理论最大数据传输速率的50%,则该链路的实际数据传输速率约是:40kbps

    解析:

    30 = 10log10(S/N)    S/N = 1000

    C = 8000 * log2(1+1000) =  80kb/s

    80 * 50% = 40kb/s

    34. 下列数据交换方式中,数据经过网络的传输延迟长而且是不固定的,不能用于语音数据传输的是:报文交换

    解析:

    报文:用户发送的原始数据(文件)

    报文大小不固定,在交换结点中需要较大的存储空间。报文经过中间结点的接收,存储和转发时间较长而且也不固定,不能用于实时通信应用环境(如语音,视频等)

    35. 就交换技术而言,以太网采用的是:分组(包)交换技术

    包/分组:大小固定的数据块(无完整意义)

    36. 为了使数据在网络中传输时延最小,首选的交换方式是:电路交换

    37. 包交换对报文交换的主要改进是:传输单位更小且有固定的最大长度

    38. 关于三种数据交换方式的叙述,错误的是:

    A. 电路交换不提供差错控制功能

    B. 分组交换的分组有最大长度的限制(超过长度的分组会被分割成几个长度较小的的分组后再发送)

    C. 虚电路是面向连接的,它提供一种可靠的服务

    D. 在出错率很高的传输系统中,选择虚电路方式更合适(数据报)

    解析:虚电路提供wan网络层的连接服务,在发送方和接收方建立一条逻辑上相连的虚电路。

    39. 电路交换,报文交换和分组交换的特点

    (1)电路交换

    数据在网络中的传输时延最小,但无法保证数据无差错地传送。

    (2)报文交换

    报文进入交换节点后要经历存储转发,从而引起时延

    报文交换对报文的大小没有限制,要求网络结点需要有较大的缓存空间

    (3)分组交换

    分组交换对报文交换主要的改进是传输单位更小且有固定的最大长度

    分组交换进一步分为:数据报方式和虚电路方式

    数据报方式:

    提供网络层无连接服务

    适用于出错率很高的传输系统

    每个分组在传输过程中都必须携带源地址和目的地址

    虚电路:

    在发送方与接收接收方之间建立一条逻辑上相连的虚电路

    提供网络层连接服务

    一个特定会话的虚电路是事先建立好的,因此它的数据分组所走的路径也是固定的

    40.  (2010年计算机联考真题)

    解析:

    分组大小为1000B=1KB=8Kb,分组头大小为20B,则分组携带的数据大小为980B。

    文件长度为980000B,需拆分为980000/980=1000个分组,加上头部后,每个分组大小为1KB=8Kb

    100Mbps = 100*1000Kbps = 100K bit / ms

    第一个分组从H1到S1需要8Kb/100Mbps = 8Kb/(100Kb / ms) = 0.08ms,

    最后一个分组从H1到S1需要0.08ms*1000=80ms

    全部传输完共需80+0.08*2=80.16ms

    答案:C

    参考例子

    发送时延 = 传输时延 = 第一个bite比特到最后一个比特全部进入传输介质。

    (注意:这里忽略了传播时延)

    40  如图,H1采用电路交换技术给H2发送一个长度为3Mbits的文件,途径3个交换机,假设建立电路需要10s,忽略传播延迟,请问传输该文件所需的总时间是:  13s

    解析:

    发送时延 = 传输时延 = 第一个bite比特到最后一个比特全部进入传输介质。

    发送文件时间 = 3Mbits / 1Mbps = 3s

    传输该文件所需的总时间 = 连接建立时间 + 发送文件时间 = 10 + 3 = 13s

    参考:

    41. (2013年计算机联考真题)

    解析:

    报文交换:

    8M / 10Mbps = 0.8s = 800ms

    800 + 800 = 1600ms

    分组交换:

    第一个分组从主机到第一个交换机10kb / 10Mbps = 10kb / 10Kbpms = 1ms

    最后一个分组从主机到第一个交换机8Mb / 10kb = 8000kb / 10kb = 800个分组

    800ms+ 1ms = 801ms

    答案:D

    42. (2014年计算机联考真题)

    下列因素中,不会影响信道数据数据传输速率的是:

    A. 信噪比    B. 频率带宽    C. 调制速率     D. 信号传播速度

    解析:

    信道的传输速率实际上就是信号的发送速率,而调制速度也会直接限制数据的传输速率。

    信号的传播速度是信号在信道上传播的速度,与信道的发送速率无关。

    答案:D

    43. (2015年计算机联考真题)

    不归零编码

    1

    1,0高低电压可反过来

    不归零反转编码

    答案:A

    44. 双绞线是用两根绝缘导线绞合而成的,绞合的目的是:减少干扰(减少两根导线相互的电磁干扰

    45. 在电缆中采用屏蔽技术可以带来的好处主要是:减少电磁干扰辐射

    解析:屏蔽层的主要作用是提高电缆的抗干扰能力

    46. 利用一根同轴电缆互连主机构成以太网,则主机间的通信方式为:

    A. 全双工

    B. 半双工

    C. 单工

    解析:传统以太网采用广播的方式发送信息,同一时间只能允许一台主机发送信息。

    47. 同轴电缆比双绞线的传输速度更快,得益于:同轴电缆具有更高的屏蔽性,更好的抗噪声性

    48. 不受电磁干扰和噪声影响的传输介质是:光纤

    光纤抗雷电和电磁干扰性能好,无串音干扰,保密性好。

    49. 多模光纤传输光信号的原理是:光的全反射特性

    50. 关于单模光纤的说法正确的是:

    A. 光纤越粗,数据传输率越高

    B. 如果光纤的直径减少到只有一个光的波长大小,则光沿直线传播

    C. 光源是发光二极管或激光(激光二极管)

    D. 光纤是中空的

    解析:我国在干线上采用光缆,多模光纤已被淘汰,全部采用单模光纤

    51. 关于卫星通信的说法,错误的是:

    A. 卫星通信的距离长,覆盖的范围广

    B. 使用卫星通信易于实现广播通信和多址通信

    C. 卫星通信的好处在于不受气候的影响,误码率很低

    D. 通信费用高,延时较大是卫星通信的不足之处

    解析:卫星通信成本高,传播时延大,受气候影响大,保密性差,误码率较高

    52. 当描述一个物理层接口引脚处于高低电平时的含义时,该描述属于:功能特性

    解析:指明某条件上出现的某一电平的电压表示何种意义,接口部件的信号线的用途

    53. (2012年计算机联考真题)

    在物理层接口特性中,用于描述完成每种功能的事件发生顺序的是:规程特性

    解析:规程特性(过程特性):定义各条物理线路的工作过程和时序关系

    54. 下列关于物理层设备的叙述中错误的是:

    A. 中继器仅作用于信号的电气部分

    B. 利用中继器来扩大网络传输距离的原理是它将衰减的信号进行了放大(再生)

    C. 集线器实质上相当于一个多端口的中继器

    D. 物理层设备连接起来的几个网段仍然是一个局域网,且不能连接具有不同数据链路层协议的网段

    解析:

    中继器(转发器):

    工作在物理层

    中继器的作用是放大信号,原理是信号再生。

    中继器有两个端口,将一个端口输入的数据从另一个端口发送出去。

    中继器连接起来的几个网段仍然是一个局域网。

    若某个网络设备具有存储转发功能,则可以连接两个不同的协议。

    中继器没有存储转发功能,所以不能连接两个具有不同速率的局域网,不能连接具有不同数据链路层协议的网段。

    55. 为了使数字信号传输得更远,可采用的设备是:中继器

    56. 以太网遵循IEEE802.3标准,用粗缆组网时每段不能大于500m,超过500m长度时就要分段,段间相连是利用:中继器

    57. 在粗缆以太网中可通过中继器扩充网段,中继器最多可有:

         A.3个                 B. 4个                 C. 5个                D.无限个  

    解析:中继器或集线器有“5-4-3规则”,5表示5个网段,4表示4个中继器或集线器,3表示3个网段为主机段。

    58. 集线器连接的网络在拓扑结构上属于:星形

    解析:集线器(Hub)的作用是将多个网络端口连接在一起,以集线器为中心。

    工作在物理层

    实质上是一个多端口的中继器,起到信号放大和转发作用

    Hub每个端口连接的网络部分是同一个网络的不同网段

    只能在半双工下工作

    59. 集线器连接的工作站集合:同属一个冲突域,也同属一个广播域

    60. 当集线器的一个端口收到数据后,将其:从除了输入端口外的所有端口广播出去

    61. 关于中继器和集线器的说法中,不正确的是:

    A. 都工作在OSI参考模型的物理层

    B. 都可以对信号进行放大和整形

    C. 通过中继器或集线器互联的网段数量不受限制(5-4-3原则)

    D. 中继器通常只有2个端口,而集线器通常有4个或更多端口

    62将物理信道的总频带宽分割成若干个子信道,每个子信道传输一路信号,这种信道复用技术是:频分多路复用

    63TDM所利用的传输介质的性质是:(不太理解)

    解析:

    位速率:比特率,单位时间内传输多少比特。

    64FDM比TDM能更好地利用信道的传输能力,但现在计算机网路更多地使用TDM而不是FDM,原因是

    A. FDM实际能力更差              B. TDM可用于数字传输而FDM不行   

    C. FDM技术不成熟                  D. TDM能更充分地利用带宽

    解析:

    65

    解析:

    66. 某网络在物理层规定,信号的电平用+10V~+15V表示二进制0,用_10V~_15V表示进制1,电线长度限于15m以内,这体现了物理层接口的:电气特性

    解析:电气特性:规定传输二进制时,线路上信号的电压高低,阻抗匹配,传输速率和距离限制等

    展开全文
  • 计算机网络通信原理部分

    千次阅读 2019-05-10 09:45:51
    文章目录计算机网络通信原理部分一、网络的由来?二、网络协议介绍三、五层模型讲解3.1、物理层3.2、数据链路层3.2.1 以太网协议3.2.2 mac地址:3.2.3广播3.3、网络层3.3.1 IP协议:3.3.2 子网掩码3.3.3 ip数据包...

    一、网络的由来?

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

    一台硬设有了操作系统,然后装上软件你就可以正常使用了,每个人都拥有一台自己的机器,然而彼此孤立。

    如何能让大家一起玩耍,就有了初步的网络,其实两台计算机之间通信与两个人打电话之间通信的原理是一样的,普通话属于中国国内人与人之间通信的标准,那如果是两个国家的人交流呢?问题是,你不可能要求一个人/计算机掌握全世界的语言/标准,于是有了世界统一的通信标准:英语

    结论:英语成为世界上所有人通信的统一标准,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列的协议,总称为’互联网协议’(Internet Protocol Suite).

    互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。

    二、网络协议介绍

    互联网协议按照功能不同分为osi七层或tcp/ip五层
    成为“黑客”前,必须学习的“计算机网络通信原理”
    分层模型-TCP/IP
    在这里插入图片描述
    TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。

    TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层:网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。

    每层运行常见物理设备

    成为“黑客”前,必须学习的“计算机网络通信原理”
    数据封装
    在这里插入图片描述
    应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(ProtocolDataUnit)彼此交换信息。

    Segment(数据段):如上层数据在传输层添加TCP报头后得到的PDU;
    Packet(数据包):数据段被传递给网络层,网络层添加IP报头得到的PDU;
    Frame(数据帧):数据包被传递到数据链路层,封装数据链路层报头得到的PDU;
    最后,帧被转换为比特,通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。

    三、五层模型讲解

    我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个互联网通信的原理

    首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件

    3.1、物理层

    上面提到,孤立的计算机之间要想一起玩,就必须接入internet,言外之意就是计算机之间必须完成组网
    成为“黑客”前,必须学习的“计算机网络通信原理”
    物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0

    3.2 数据链路层

    单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思

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

    3.2.1 Ethernet 以太网

    Ethernet帧格式的发展

    1980 DEC,Intel,Xerox制订了Ethernet I的标准
    1982 DEC,Intel,Xerox又制订了Ehternet II的标准
    1982 IEEE开始研究Ethernet的国际标准802.3
    1983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式
    1985 IEEE推出IEEE 802.3规范,后来为解决EthernetII与802.3帧格式的兼容问题,
    推出折衷的Ethernet SNAP格式

    (其中早期的Ethernet I已经完全被其他帧格式取代了 ,所以现在Ethernet只能见到后面几种Ethernet的帧格式,
    现在大部分的网络设备都支持这几种Ethernet的帧格式,
    如:cisco的路由器再设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether)

    3.2.1.1 以太网协议

    数据包在以太网物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为称为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。

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

    ethernet规定:一组电信号构成一个数据包,叫做’帧’,每一数据帧分成:报头head和数据data两部分

    Ethernet_II帧格式:
    在这里插入图片描述
    Ethernet_II的帧中各字段说明如下:

    • head包含:(固定14个字节)
      • 发送者/源地址,6个字节
      • 接收者/目标地址,6个字节
      • 数据类型 2个字节,类型字段(Type)用于标识数据字段中包含的高层协议。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧。
    • data包含:(最短46字节,最长1500字节)
      • 数据包的具体内容:head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
    • FCS 循环冗余校验字段提供了一种错误检测机制。该字段长度为4个字节。
    3.2.1.2 数据帧传输

    在这里插入图片描述

    • 数据链路层基于MAC地址进行帧的传输。

    以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。

    3.2.1.3 mac地址

    head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址。
    在这里插入图片描述
    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
    成为“黑客”前,必须学习的“计算机网络通信原理”

    例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

    3.2.1.4 单播

    在这里插入图片描述
    局域网上的帧可以通过三种方式发送。第一种是单播,指从单一的源端发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

    3.2.1.5 广播

    有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼
    成为“黑客”前,必须学习的“计算机网络通信原理”
    第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。

    广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。

    当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

    3.2.1.6 组播

    第三种发送方式为组播,组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。

    组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。

    当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。

    3.2.1.7 总结

    网络设备如何确定以太网数据帧的上层协议?

    以太网帧中包含一个Type字段,表示帧中的数据应该发送到上层哪个协议处理。比如,IP协议对应的Type值为0x0800,ARP协议对应的Type值为0x0806。

    终端设备接收到数据帧时,会如何处理?

    主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的Type字段来决定把数据发送到哪个上层协议进行后续处理。

    Ethernet II比IEEE802.3 SAP和SNAP更适合于传输大量的数据,但Ethernet II缺乏对数据链路层的控制,不利于传输需要严格传输控制的数据。实际中,大多数应用程序的以太网数据包都是Ethernet II帧的(HTTP/Telnet/FTP/SMTP/PO P3等应用),而交换机之间的BPDU是采用IEEE802.3 SAP帧,VLAN Trunk协议802.1Q和Cisco CDP都是采用IEEE802.3 SNAP帧。

    3.2.2 MTU

    MTU即Maximum Transmission Unit 最大传输单元。它是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。

    3.2.2.1 路径MTU

    路径MTU是指一条因特网传输路径中,从源地址到目的地址所经过的“路径”上的所有IP跳的最大传输单元的最小值。
    或者从另外一个角度来看,就是无需进行分片处理就能穿过这条“路径”的最大传输单元的最大值。

    3.2.2.2 路径MTU的发现方法

    这是确定两个IP主机之间路径最大传输单元的技术,其目的就是为了避免IP分片。
    首先源地址将数据报的DF位置位,在逐渐增大发送的数据报的大小——路径上任何需要将分组进行分片的设备都会将这种数据报丢弃并返回“数据报过大“的ICMP响应
    到源地址——这样源主机就”学习“到了无需分片就能通过这条路径的最大的最大传输单元。

    3.2.2.3 TraceRoute

    Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具。
    它的原理如下:它受到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包(每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签),
    而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。
    主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。

    Traceroute提取发送 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。
    在这里插入图片描述

    3.3、网络层

    有了ethernet、mac地址、广播的发送方式,世界上的计算机就可以彼此通信了,问题是世界范围的互联网是由一个个彼此隔离的小的局域网组成的,那么如果所有的通信都采用以太网的广播方式,那么一台机器发送的包全世界都会收到,这就不仅仅是效率低的问题了,这会是一种灾难

    成为“黑客”前,必须学习的“计算机网络通信原理”

    上图结论:必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是,如果是就采用广播的方式发送,如果不是,就采用路由的方式(向不同广播域/子网分发数据包),mac地址是无法区分的,它只跟厂商有关。

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

    3.3.1 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并不能确定二者处于同一子网

    3.3.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地址,另一个是确定哪些地址在同一个子网络。

    3.3.3 ip数据包

    3.3.3.1 IP数据包组成

    ip数据包也分为head和data部分,无须为ip包定义单独的栏位,直接放入以太网包的data部分

    • head:长度为20到60字节
    • data:最长为65,515字节。

    而以太网数据包的"数据"部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

    掌握IP首部格式如16位分片标识、DF不分片标志、MF更多分片标志↓13位片偏移,8位生存时间TTL,16位的首部检验和等等

    3.3.3.2 IP分片原理

    如何避免ip分片(在应用层或传输层做限制),确定ip分片的顺序,客户端如何确认分片全部到达

    3.3.3.3 掌握ip选路

    3.3.4 ARP协议

    arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议

    arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

    协议工作方式:每台主机ip都是已知的

    例如:主机172.16.10.10/24访问172.16.10.11/24

    • 3.1首先通过ip地址和子网掩码区分出自己所处的子网
    • 3.2分析172.16.10.10/24与172.16.10.11/24处于同一网络(如果不是同一网络,那么下表中目标ip为172.16.10.1,通过arp获取的是网关的mac)
    • 3.3这个包会以广播的方式在发送端所处的自网内传输,所有主机接收后拆开包,发现目标ip为自己的,就响应,返回自己的mac
    3.3.4.1 arp报文格式
    3.3.4.2 arp 查询原理
    3.3.4.3 arp 缓存

    3.3.5 ICMP协议

    掌握ICMP协议的报文格式、报文的两大分类: 查询+差错,2种查询报文+ 5种差错报文

    3.4、传输层

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

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

    补充:端口范围0-65535,0-1023为系统占用端口

    3.4.1 udp协议

    掌握UDP协议:包括特点+首部各个字段

    不可靠传输,"报头"部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    3.4.2 tcp协议

    可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    3.4.2.1 tcp报文

    掌握TCP协议:特点十 首部字段 +可靠机制厂
    成为“黑客”前,必须学习的“计算机网络通信原理”

    3.4.2.2 tcp 连接控制

    五种情况:三次握手、四次挥手、同时打开、同时关闭、半关闭
    成为“黑客”前,必须学习的“计算机网络通信原理”

    3.4.2.3 TCP流量控制机制(四个机制=4个算法)

    滑动窗口、 慢启动、拥塞避免、快速重传、快速恢复

    3.4.2.4 超时重传机制

    各种定时器

    3.4.3 为什么UDP和TCP要有伪首部

    3.5、应用层

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

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

    例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。
    成为“黑客”前,必须学习的“计算机网络通信原理”

    3.5.1 DNS 协议

    掌握DNS协议的名字空间、DNS指针查询(反向查找或逆向解近)基本原理,DNS缓存

    3.5.2 FTP 协议

    两条连接:控制连接+数据连接;
    两种工作模式: PASV + PORT;
    各种FTP指令 和 响应码;
    FTP断点续传、 匿名FTP;

    3.5.3 http协议

    掌握开TP协议:
    1.报文格式:请求报文、响应报文、请求头各种字段、 响应头各种字段
    2. http状态码

    3.5.3 https 协议

    https协议:

    1. https的详细握手过程
      2.摘要算法、数字签名、数学证书的原理和过程

    3.6、Socket

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

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

    socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

    三、网络通信实现

    3、1 每台主机实现网络通信的基本四要素

    • 本机的IP地址
    • 子网掩码
    • 网关的IP地址
    • DNS的IP地址

    3.2 获取这四要素分两种方式

    3.2.1 静态获取

    即手动配置

    3.2.3 动态获取

    通过dhcp获取

    1. 最前面的"以太网标头",设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。
    2. 后面的"IP标头",设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。
    3. 最后的"UDP标头",设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。

    这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道"这个包是发给我的",而其他计算机就可以丢弃这个包。

    接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个"DHCP响应"数据包。这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方),UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分。

    新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数。

    四、例举主机访问网站的网络通信过程

    首先打开浏览器,在地址栏输入URL,回车,出现网站内容。这是我们几乎每天都在做的事,那这个过程中到底是什么原理呢?HTTP、TCP、DNS、IP这些耳熟能详的名词都在什么时候起着什么作用呢?在这里整体梳理一遍。

    4.1整个过程基本分做下面几个部分

    1. 域名解析成IP地址;
    2. 与目的主机进行TCP连接(三次握手);
    3. 发送与收取数据;
    4. 与目的主机断开TCP连接(四次挥手);

    4.2下面分别进行详细说明

    4.2.1域名解析成IP地址

    首先说什么是域名解析?

    我们在浏览器地址栏中输入的都是类似"www.baidu.com"、"www.qq.com"等等容易记忆的英文域名,但这些字母你直接交给整个网络线路去寻找目的主机找得到吗?找不到,因为每个主机在网络中的位置都是以IP标识的,IP才是主机在网络中的位置,域名只是为了方便用户记忆而已,这就要求浏览器能够识别域名并且将其转化为对应的IP地址。

    所以浏览器会有一个DNS缓存,其中记录了一些域名与IP的对应关系,供浏览器快速查找需要的IP。但是这个DNS缓存不可能存下所有的域名-IP地址,何况IP地址有时候还会变化,因此当在DNS缓存中没有找到的时候,就要先向DNS服务器请求域名解析,我们常听到的DNS服务器很大的作用就是进行域名解析。

    值得一提的是,DNS域名解析时用的是UDP协议。

    整个域名解析的过程如下:

    1. 浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文;
    2. DNS模块将生成的DNS报文传递给传输层的UDP协议单元;
    3. UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元;
    4. IP协议单元将该数据封装成IP数据包,其目的IP地址为DNS服务器的IP地址;
    5. 封装好的IP数据包将传递给数据链路层的协议单元进行发送;
    6. 发送时在ARP缓存中查询相关数据,如果没有,就发送ARP广播(包含待查询的IP地址,收到广播的主机检查自己的IP,符合条件的主机将含有自己MAC地址的ARP包发送给ARP广播的主机)请求,等待ARP回应;
    7. 得到ARP回应后,将IP地址与路由的下一跳MAC地址对应的信息写入ARP缓存表;
    8. 写入缓存后,以路由下一跳的地址填充目的MAC地址,以数据帧形式转发;
    9. 转发可能进行多次;
    10. DNS请求到达DNS服务器的数据链路层协议单元;
    11. DNS服务器的数据链路层协议单元解析数据帧,将内部的IP数据包传递给网络层IP协议单元;
    12. DNS服务器的IP协议单元解析IP数据包,将内部的UDP数据报传递给传输层UDP协议单元;
    13. DNS服务器的UDP协议单元解析收到的UDP数据报,将内部的DNS报文传递给DNS服务单元;
    14. DNS服务单元将域名解析成对应IP地址,产生DNS回应报文;
    15. DNS回应报文->UDP->IP->MAC->我的主机;
    16. 我的主机收到数据帧,将数据帧->IP->UDP->浏览器;
    17. 将域名解析结果以域名和IP地址对应的形式写入DNS缓存表。

    其中提到了一个ARP的概念,类似于DNS将域名翻译成IP,ARP则是将IP翻译成MAC地址,我们知道了IP后,需要通过主机的MAC地址来更具体的找到主机。同样的也有一个ARP缓存,其中存储了一些IP与MAC地址的对应关系,如果缓存中找不到,就会进行广播来查找MAC地址,收到广播的主机会检查自己的IP是否是待查找的IP,是的话就返回自己的MAC地址。

    **端口:**如果做开发,往往还会接触到端口这个概念,那端口是什么呢?这里是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等,都有一些固定的端口号,被占用后就不能被别的服务拿来传输数据了。

    4.2.2 与目的主机进行TCP连接(三次握手)

    得到域名对应的IP地址后,也就表示可以将数据送达目的主机了,这时候才开始我们常说的三次握手建立连接。

    HTTP的请求时使用TCP进行传输的,可以保证可靠传输,并且有序,而TCP是有连接的传输,也就是在传输数据之前,会建立我的主机与目的主机之间的连接,然后才能传输数据,传输完成后,还有断开连接。这也就是TCP的三次握手和四次挥手,大致过程如下图所示:

    成为“黑客”前,必须学习的“计算机网络通信原理”

    具体的三次握手建立连接的过程如下表述,其中数据包的传输过程类似上文请求DNS服务器时的过程,就简单的表示一下:

    1. 向目的主机发送TCP连接请求报文;
    2. 该TCP报文中SYN标志位设为1,表示连接请求;
    3. 该TCP报文通过IP(DNS)->MAC(ARP)->网关->目的主机;
    4. 目的主机收到数据帧,通过IP->TCP,TCP协议单元回应请求应答报文;
    5. 该报文中SYN和ACK标志设为1,表示连接请求应答;
    6. 该TCP报文通过IP(DNS)->MAC(ARP)->网关->我的主机;
    7. 我的主机收到数据帧,通过IP->TCP,TCP协议单元回应请求确认报文;
    8. 该TCP报文通过IP(DNS)->MAC(ARP)->网关->目的主机;
    9. 目的主机收到数据帧,通过IP->TCP,连接建立完成。

    三次握手的过程就是一去一回一去,互相确认一下,就建立连接啦。这个过程中任何一个报文出错或者超时,都要进行重传。

    4.2.3 发送与收取数据

    如上所说,只有建立连接后才能开始传输数据,数据其实有多种传输方式,比如分段啊分组啊分时啊等等。而一个数据包的传输过程如下所示,以HTTP的GET方法请求为例:

    1. 浏览器向域名发出GET方法报文;
    2. 该GET方法报文通过TCP->IP(DNS)->MAC(ARP)->网关->目的主机;
    3. 目的主机收到数据帧,通过IP->TCP->HTTP,HTTP协议单元会回应HTTP协议格式封装好的HTML形式数据;
    4. 该HTML数据通过TCP->IP(DNS)->MAC(ARP)->网关->我的主机;
    5. 我的主机收到数据帧,通过IP->TCP->HTTP->浏览器,浏览器以网页形式显示HTML内容。

    其他的HTTP方法在传输数据时方法都类似,只是所携带的内容不同。

    4.2.4 与目的主机断开TCP连接(四次挥手)

    数据传输完成后需要断开连接,与建立时不同,断开连接需要多一次,有四次挥手,至于为什么,看完过程我们再讲。

    看图理解过程:

    成为“黑客”前,必须学习的“计算机网络通信原理”

    过程如下:

    1. 浏览器向目的主机发出TCP连接结束请求报文,此时进入FIN WAIT状态;
    2. 该报文FIN标志位设为1,表示结束请求;
    3. TCP结束请求报文通过IP(DNS)->MAC(ARP)->网关->目的主机;
    4. 目的主机收到数据帧,通过IP->TCP,TCP协议单元回应结束应答报文;
    5. 当前只是进行回应,因为目的主机可能还有数据要传,并不急着断开连接;
    6. 该报文中ACK标志位设为1,表示收到结束请求;
    7. 目的数据发送完所有数据后,向我的主机发出TCP连接结束请求报文;
    8. 该报文FIN标志位设为1,表示结束请求;
    9. TCP结束请求报文通过IP(DNS)->MAC(ARP)->网关->我的主机;
    10. 我的主机收到数据帧,通过IP->TCP,TCP协议单元回应结束应答报文,此时进入TIME WAIT状态,因为不相信网络是可靠的,如果目的主机没收到还可以重发;
    11. 该报文中的FIN标志位均设为1,表示结束应答;
    12. 该TCP回应报文通过IP(DNS)->MAC(ARP)->网关->目的主机;
    13. 目的主机关闭连接;
    14. TIME WAIT等待结束后,没有收到回复,说明目的正常关闭了,我的主机也关闭连接。

    这里的过程是以我的主机主动发起结束请求开始的,实际上也可以由目的主机主动发起,那么过程就会跟上面相反,但细节差不多。

    FIN_WAIT状态是主动发起请求时等待确认信息,而TIME_WAIT状态是收到结束请求后发送确认信息后等待看是否需要重发。

    现在来说说为什么断开连接时需要四次挥手呢?因为建立连接时目的主机可以直接发送SYN(同步)+ACK(应答)报文。而当断开时,目的主机收到FIN后可能还有数据要发,并不一定直接断开,所以先发送一次应答,告知我的主机收到了请求,等确认所有数据都发完了,再发送FIN,同时等待我的主机应答,这里的FIN和ACK就不能一起发送,所以需要四次。

    4.2.5 总结一下

    以上就是主机访问网站时的网络通信全过程,归纳起来就是:

    首先要通过域名找到IP,如果缓存里没有就要请求DNS服务器;得到IP后开始于目的主机进行三次握手来建立TCP连接;连接建立后进行HTTP访问,传输并获取网页内容;传输完后与目的主机四次挥手来断开TCP连接。

    展开全文
  • 计算机网络通信总结

    千次阅读 2019-02-04 14:38:59
    二:网络通信原理 2.1互联网的本质就是一系列的网络协议 2.2OSI七层协议 2.3TCP/IP五层模型讲解 2.3.1物理层 2.3.2数据链路层 2.3.3网络层 2.3.4传输层 2.3.5 应用层 三:网络通信的实现 四:网络通信流程...

    目录

    一:前言

    二: 网络通信原理

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

    2.2 OSI七层协议

    2.3 TCP/IP五层模型讲解

    2.3.1 物理层

    2.3.2 数据链路层

    2.3.3 网络层

    2.3.4 传输层

    2.3.5 应用层

    三:网络通信的实现

    四:网络通信流程


    一:前言

    操作系统是管理和控制计算机硬件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。其位于计算机硬件和应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)和系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成。

     

    二: 网络通信原理

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

    一台电脑有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用,像这样,每个人都拥有一台自己的机器,然而彼此孤立

     要想一起玩耍的话,得通过internet连接起来,两台计算机之间通信和两个人打电话通信的原理是一样的

    中国人和中国人之间通信的标准:普通话,那么中国人和世界人通讯的标准:英语

    结论:英语成为世界上所有人通信的标准,如果把计算机看做分布在世界各地的人,那么连接两台计算机之间的internet实际上就是统一的标准,这些标准就称之为互联网协议,互联网的核心就是一系列协议,总称为"互联网协议",定义了计算机如何接入internet,以及接入internet的计算机通信标准

    2.2 OSI七层协议

    互联网协议按照功能不同分为OSI七层或TCP/IP五层或TCP/IP四层

    每层运行常见物理设备

    2.3 TCP/IP五层模型讲解

    TCP/IP协议是实际中应用最多的协议,搞清楚了每层的主要协议就理解了互联网通信的原理。 同层之间相互通信,下层为上层提供服务。在每一层中都运行特定的协议,越往上越接近用户,越往下越接近硬件。

    2.3.1 物理层

    孤立的计算机要想一起玩耍就必须介入internet,简单来说就是计算机之间必须完成组网

    物理层的主要功能:主要是基于电气特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0

    2.3.2 数据链路层

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

    功能:定义了电信号的分组方式

    以太网协议

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

    ethernet规定:

    • 一组电信号构成一个数据包,叫做"帧"
    • 每一组数据帧分成:报头head和data两部分
    head data

     head包含(固定18个字节)

    • 发送者/源地址,6个字节
    • 接受者/目标地址,6个字节
    • 数据类型,6个字节

    data包含(最短46个字节,最长1500字节)

    • 数据包的具体内容

    head长度+data长度=最短64字节,最长1518字节,超过最大限制,就分片发送

    mac地址

    head中包含的源地址和目标地址由来:ethernet规定介入的internet的设备都必须具备网卡,发送者和接受者的地址便是mac地址

    mac地址:每块网卡出厂时都会被烧制一个世界唯一的mac地址,长度为48位的二进制,通常由12位16进制组成(前6位是厂商编号,后六位是流水线编号)

     广播

    有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另一台主机的mac地址),ethernet采用最原始的广播方式进行通信,即计算机通信基本靠

    2.3.3 网络层

    有了ethernet,mac地址,广播的发送方式,世界上的计算机就可以彼此通信了,问题:世界上的互联网是由一个个彼此隔离的小局域网组成的,如果所有的通信都采用以太网广播的方式,那么一台机器发送的包全世界都会收到,造成效率低下的和大灾难

    结论:必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是属于同一广播域,如果是就采用广播的方式,如果不是就采用路由的方式(向不同的广播域/子网分发数据包),mac地址是无法区分的,只跟厂商有关系

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

    IP协议

    • 规定网络地址的协议叫IP协议,广泛采用的v4版本叫做IPV4,规定网络地址由32位2进制组成
    • 范围0.0.0.0-255.255.255.255
    • 通常用点分十进制书写:172.16.10.1

    IP地址

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

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

    子网掩码

    子网掩码是表示子网特征的一个参数,形式上等同于IP地址,也是一个32位的2进制数字,网络部分全为1,主机部分全为0

    知道子网掩码,就能判断,任意的两个IP地址是不是处在同一个子网

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

    总结:IP协议有两个作用:1.为每一台计算机分配IP地址2.确定哪些地址处在同一个子网

    IP数据包

    IP数据包分为head和data两个部分,直接放入以太网包的data部分

    • head:长度为20到60字节
    • data:最长为65515字节
    以太网头 IP头 IP数据

    以太网数据包的数据部分,最长只有1500字节,因此,如果IP数据包超过了1500字节, 就需要分割成多个以太网数据包

     ARP协议

    由来:计算机通信基本靠吼:即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议去发送。计算机通信是基于mac地址广播方式实现,计算机在发包时,获取自身的mac是容易的,获取目标的mac地址通过arp协议

    功能:广播的方式发送数据包,获取目标主机的mac地址

    工作方式:

           一:首先通过ip地址和子网掩码区分出自己所处的子网

    场景 数据包地址
    同一子网 目标主机mac,目标主机ip
    不同子网 网关mac,目标主机ip

      二: 分析172.16.10.10/24与172.16.10.11/24处于同一网络(如果不是同一网络,那么下表中目标ip为172.16.10.1,通过arp获取的是网关的mac)

      源mac 目标mac 源ip 目标ip 数据部分
    发送端主机 发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据

        三:这个包会以广播的方式在发送端所处的自网内传输,所有主机接收后拆开包,发现目标ip为自己的,就响应,返回自己的mac

    2.3.4 传输层

    由来:网络层的IP帮助我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,电脑上可能同时开启多个应用程序,通过ip+mac+端口去标识特定主机上的应用程序,端口即应用程序与网卡关联的编号

    功能:建立端口到端口的通信

    tcp协议

    可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割

    以太网头 IP头 tcp头 数据

     

     

    udp协议

    不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    以太网头 IP头 udp头 数据

     

     

    tcp的三次握手和四次挥手

    2.3.5 应用层

    由来:用户使用的都是应用程序,都工作在应用层,互联网是开放的,必须规定好数据的组织形式

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

    例如:TCP协议可以为各种各样的程序传递数据,比如email,www,ftp等等,必须有不同协议规定各种数据的格式,这些应用程序协议就构成了应用层。

    三:网络通信的实现

    要想实现网络通信,每台主机必须具备四要素

    • 本机的IP地址
    • 子网掩码
    • 网关的IP地址
    • DNS的IP地址

    获取这四要素有两种方式

    1.静态获取

             即手动配置

    2.动态获取

             通过dhcp获取

    以太网头 IP头 udp头 dhcp数据包

    (1) 最前面的”以太网标头”,设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。

    (2) 后面的”IP标头”,设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。

    (3) 最后的”UDP标头”,设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。

    这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道”这个包是发给我的”,而其他计算机就可以丢弃这个包。

    接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个”DHCP响应”数据包。这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方),UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分。

    新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数

    四:网络通信流程

    1. 本机获取

    • 本机的IP地址:192.168.1.100
    • 子网掩码:255.255.255.0
    • 网关的IP地址:192.168.1.1
    • DNS的IP地址:8.8.8.8

    2. 打开浏览器,想要访问baidu,在地址栏输入了网址:www.baidu.com

    3. DNS协议(基于UDP协议)

    13台根dns

    A.root-servers.net198.41.0.4美国
    B.root-servers.net192.228.79.201美国(另支持IPv6
    C.root-servers.net192.33.4.12法国
    D.root-servers.net128.8.10.90美国
    E.root-servers.net192.203.230.10美国
    F.root-servers.net192.5.5.241美国(另支持IPv6
    G.root-servers.net192.112.36.4美国
    H.root-servers.net128.63.2.53美国(另支持IPv6
    I.root-servers.net192.36.148.17瑞典
    J.root-servers.net192.58.128.30美国
    K.root-servers.net193.0.14.129英国(另支持IPv6)
    L.root-servers.net198.32.64.12美国
    M.root-servers.net202.12.27.33日本(另支持IPv6)

    域名定义

    http://jingyan.baidu.com/article/1974b289a649daf4b1f774cb.html

    顶级域名(一级域名)

         以.com,.net,.org,.cn等等属于国际顶级域名,根据目前的国际互联网域名体系,国际顶级域名分为两类:类别顶级域名(gTLD)和地理顶级域名(ccTLD)两种。类别顶级域名是以"COM"、"NET"、"ORG"、"BIZ"、"INFO"等结尾的域名,均由国外公司负责管理。地理顶级域名是以国家或地区代码为结尾的域名,如"CN"代表中国,"UK"代表英国。地理顶级域名一般由各个国家或地区负责管理

    二级域名

             二级域名是以顶级域名为基础的地理域名,比喻中国的二级域有,.com.cn,.net.cn,.org.cn,.gd.cn等.子域名是其父域名的子域名,比喻父域名是abc.com,子域名就是www.abc.com或者*.abc.com.
    一般来说,二级域名是域名的一条记录,比如alidiedie.com是一个域名,www.alidiedie.com是其中比较常用的记录,一般默认是用这个,但是类似*.alidiedie.com的域名全部称作是alidiedie.com的二级, com的三级域名

    例:tieba.baidu.com
    com 顶级域名(一级域名)
    baidu.com 二级域名
    tieba.baidu.com 三级域名

    4. HTTP部分的内容,类似于下面这样:

    GET / HTTP/1.1
    Host: www.google.com
    Connection: keep-alive
    User-Agent: Mozilla/5.0 (Windows NT 6.1) ……
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: zh-CN,zh;q=0.8
    Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
    Cookie: … …

    我们假定这个部分的长度为4960字节,它会被嵌在TCP数据包之中。

    5 TCP协议

    TCP数据包需要设置端口,接收方(Google)的HTTP端口默认是80,发送方(本机)的端口是一个随机生成的1024-65535之间的整数,假定为51775。

    TCP数据包的标头长度为20字节,加上嵌入HTTP的数据包,总长度变为4980字节。

    6 IP协议

    然后,TCP数据包再嵌入IP数据包。IP数据包需要设置双方的IP地址,这是已知的,发送方是192.168.1.100(本机),接收方是172.194.72.105(Google)。

    IP数据包的标头长度为20字节,加上嵌入的TCP数据包,总长度变为5000字节。

    7 以太网协议

    最后,IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址,发送方为本机的网卡MAC地址,接收方为网关192.168.1.1的MAC地址(通过ARP协议得到)。

    以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节。因此,IP数据包必须分割成四个包。因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560。

    8 服务器端响应

    经过多个网关的转发,Google的服务器172.194.72.105,收到了这四个以太网数据包。

    根据IP标头的序号,Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来。

    本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。

    展开全文
  • netstat -n | awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}'
  • 计算机网络通信原理" "黑客"的目的是寻找目标漏洞,然后去发起攻击或者提出解决方案修补漏洞,而寻找漏洞的过程,你就需要掌握很多知识,例如计算机原理、计算机网络、操作系统、计算机软件、编程...

    成为"黑客"前,必须学习的"计算机网络通信原理"

    "黑客"的目的是寻找目标漏洞,然后去发起攻击或者提出解决方案修补漏洞,而寻找漏洞的过程,你就需要掌握很多知识,例如计算机原理、计算机网络、操作系统、计算机软件、编程语言、数据结构、数据库技术、前沿技术等等,在这么多要学习的内容里,首先需要先学习"网络通信原理",为什么?因为网络通信原理十分重要,根据他的原理可以判断出许多貌似正确的理论其实是有很多漏洞的通信过程,而很多黑客攻击就是利用了这些漏洞,很多网络安全解决方案也是用来解决这些漏洞问题的。

    一、网络的由来?

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

    一台硬设有了操作系统,然后装上软件你就可以正常使用了,每个人都拥有一台自己的机器,然而彼此孤立。

    如何能让大家一起玩耍,就有了初步的网络,其实两台计算机之间通信与两个人打电话之间通信的原理是一样的,普通话属于中国国内人与人之间通信的标准,那如果是两个国家的人交流呢?问题是,你不可能要求一个人/计算机掌握全世界的语言/标准,于是有了世界统一的通信标准:英语

    结论:英语成为世界上所有人通信的统一标准,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列的协议,总称为'互联网协议'(Internet Protocol Suite).

    互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。

    二、网络协议介绍

    互联网协议按照功能不同分为osi七层或tcp/ip五层

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

    每层运行常见物理设备

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

    五层模型讲解

    我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个互联网通信的原理

    首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件

    1、物理层:上面提到,孤立的计算机之间要想一起玩,就必须接入internet,言外之意就是计算机之间必须完成组网

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

    物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0

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

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

    以太网协议:

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

    ethernet规定

    一组电信号构成一个数据包,叫做'帧'

    每一数据帧分成:报头head和数据data两部分

    head包含:(固定18个字节)

    发送者/源地址,6个字节

    接收者/目标地址,6个字节

    数据类型,6个字节

    data包含:(最短46字节,最长1500字节)

    数据包的具体内容

    head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

    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地址,另一个是确定哪些地址在同一个子网络。

    ip数据包

    ip数据包也分为head和data部分,无须为ip包定义单独的栏位,直接放入以太网包的data部分

    head:长度为20到60字节

    data:最长为65,515字节。

    而以太网数据包的"数据"部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

    ARP协议

    arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议

    arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

    协议工作方式:每台主机ip都是已知的

    例如:主机172.16.10.10/24访问172.16.10.11/24

    3.1首先通过ip地址和子网掩码区分出自己所处的子网

    3.2分析172.16.10.10/24与172.16.10.11/24处于同一网络(如果不是同一网络,那么下表中目标ip为172.16.10.1,通过arp获取的是网关的mac)

    3.3这个包会以广播的方式在发送端所处的自网内传输,所有主机接收后拆开包,发现目标ip为自己的,就响应,返回自己的mac

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

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

    补充:端口范围0-65535,0-1023为系统占用端口

    tcp协议:可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    udp协议:

    不可靠传输,"报头"部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    tcp报文

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

    tcp三次握手和四次挥手

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

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

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

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

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

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

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

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

    socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

    三、网络通信实现

    每台主机实现网络通信的基本四要素:

    本机的IP地址

    子网掩码

    网关的IP地址

    DNS的IP地址

    获取这四要素分两种方式:

    1.静态获取

    即手动配置

    2.动态获取

    通过dhcp获取

    (1)最前面的"以太网标头",设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。

    (2)后面的"IP标头",设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。

    (3)最后的"UDP标头",设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。

    这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道"这个包是发给我的",而其他计算机就可以丢弃这个包。

    接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个"DHCP响应"数据包。这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方),UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分。

    新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数。

    四、例举主机访问网站的网络通信过程

    首先打开浏览器,在地址栏输入URL,回车,出现网站内容。这是我们几乎每天都在做的事,那这个过程中到底是什么原理呢?HTTP、TCP、DNS、IP这些耳熟能详的名词都在什么时候起着什么作用呢?在这里整体梳理一遍。

    4.1整个过程基本分做下面几个部分:

    1、域名解析成IP地址;

    2、与目的主机进行TCP连接(三次握手);

    3、发送与收取数据;

    4、与目的主机断开TCP连接(四次挥手);

    4.2下面分别进行详细说明。

    4.2.1域名解析成IP地址

    首先说什么是域名解析?

    我们在浏览器地址栏中输入的都是类似"www.baidu.com"、"www.qq.com"等等容易记忆的英文域名,但这些字母你直接交给整个网络线路去寻找目的主机找得到吗?找不到,因为每个主机在网络中的位置都是以IP标识的,IP才是主机在网络中的位置,域名只是为了方便用户记忆而已,这就要求浏览器能够识别域名并且将其转化为对应的IP地址。

    所以浏览器会有一个DNS缓存,其中记录了一些域名与IP的对应关系,供浏览器快速查找需要的IP。但是这个DNS缓存不可能存下所有的域名-IP地址,何况IP地址有时候还会变化,因此当在DNS缓存中没有找到的时候,就要先向DNS服务器请求域名解析,我们常听到的DNS服务器很大的作用就是进行域名解析。

    值得一提的是,DNS域名解析时用的是UDP协议。

    整个域名解析的过程如下:

    1、浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文;

    2、DNS模块将生成的DNS报文传递给传输层的UDP协议单元;

    3、UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元;

    4、IP协议单元将该数据封装成IP数据包,其目的IP地址为DNS服务器的IP地址;

    5、封装好的IP数据包将传递给数据链路层的协议单元进行发送;

    6、发送时在ARP缓存中查询相关数据,如果没有,就发送ARP广播(包含待查询的IP地址,收到广播的主机检查自己的IP,符合条件的主机将含有自己MAC地址的ARP包发送给ARP广播的主机)请求,等待ARP回应;

    7、得到ARP回应后,将IP地址与路由的下一跳MAC地址对应的信息写入ARP缓存表;

    8、写入缓存后,以路由下一跳的地址填充目的MAC地址,以数据帧形式转发;

    9、转发可能进行多次;

    10、DNS请求到达DNS服务器的数据链路层协议单元;

    11、DNS服务器的数据链路层协议单元解析数据帧,将内部的IP数据包传递给网络层IP协议单元;

    12、DNS服务器的IP协议单元解析IP数据包,将内部的UDP数据报传递给传输层UDP协议单元;

    13、DNS服务器的UDP协议单元解析收到的UDP数据报,将内部的DNS报文传递给DNS服务单元;

    14、DNS服务单元将域名解析成对应IP地址,产生DNS回应报文;

    15、DNS回应报文->UDP->IP->MAC->我的主机;

    16、我的主机收到数据帧,将数据帧->IP->UDP->浏览器;

    17、将域名解析结果以域名和IP地址对应的形式写入DNS缓存表。

    其中提到了一个ARP的概念,类似于DNS将域名翻译成IP,ARP则是将IP翻译成MAC地址,我们知道了IP后,需要通过主机的MAC地址来更具体的找到主机。同样的也有一个ARP缓存,其中存储了一些IP与MAC地址的对应关系,如果缓存中找不到,就会进行广播来查找MAC地址,收到广播的主机会检查自己的IP是否是待查找的IP,是的话就返回自己的MAC地址。

    如果做开发,往往还会接触到端口这个概念,那端口是什么呢?这里是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等,都有一些固定的端口号,被占用后就不能被别的服务拿来传输数据了。

    4.2.2与目的主机进行TCP连接(三次握手)

    得到域名对应的IP地址后,也就表示可以将数据送达目的主机了,这时候才开始我们常说的三次握手建立连接。

    HTTP的请求时使用TCP进行传输的,可以保证可靠传输,并且有序,而TCP是有连接的传输,也就是在传输数据之前,会建立我的主机与目的主机之间的连接,然后才能传输数据,传输完成后,还有断开连接。这也就是TCP的三次握手和四次挥手,大致过程如下图所示:

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

    具体的三次握手建立连接的过程如下表述,其中数据包的传输过程类似上文请求DNS服务器时的过程,就简单的表示一下:

    1、向目的主机发送TCP连接请求报文;

    2、该TCP报文中SYN标志位设为1,表示连接请求;

    3、该TCP报文通过IP(DNS)->MAC(ARP)->网关->目的主机;

    4、目的主机收到数据帧,通过IP->TCP,TCP协议单元回应请求应答报文;

    5、该报文中SYN和ACK标志设为1,表示连接请求应答;

    6、该TCP报文通过IP(DNS)->MAC(ARP)->网关->我的主机;

    7、我的主机收到数据帧,通过IP->TCP,TCP协议单元回应请求确认报文;

    8、该TCP报文通过IP(DNS)->MAC(ARP)->网关->目的主机;

    9、目的主机收到数据帧,通过IP->TCP,连接建立完成。

    三次握手的过程就是一去一回一去,互相确认一下,就建立连接啦。这个过程中任何一个报文出错或者超时,都要进行重传。

    4.2.3发送与收取数据

    如上所说,只有建立连接后才能开始传输数据,数据其实有多种传输方式,比如分段啊分组啊分时啊等等。而一个数据包的传输过程如下所示,以HTTP的GET方法请求为例:

    1、浏览器向域名发出GET方法报文;

    2、该GET方法报文通过TCP->IP(DNS)->MAC(ARP)->网关->目的主机;

    3、目的主机收到数据帧,通过IP->TCP->HTTP,HTTP协议单元会回应HTTP协议格式封装好的HTML形式数据;

    4、该HTML数据通过TCP->IP(DNS)->MAC(ARP)->网关->我的主机;

    5、我的主机收到数据帧,通过IP->TCP->HTTP->浏览器,浏览器以网页形式显示HTML内容。

    其他的HTTP方法在传输数据时方法都类似,只是所携带的内容不同。

    4.2.4与目的主机断开TCP连接(四次挥手)

    数据传输完成后需要断开连接,与建立时不同,断开连接需要多一次,有四次挥手,至于为什么,看完过程我们再讲。

    看图理解过程:

    成为“黑客”前,必须学习的“计算机网络通信原理”

     

    过程如下:

    1、浏览器向目的主机发出TCP连接结束请求报文,此时进入FIN WAIT状态;

    2、该报文FIN标志位设为1,表示结束请求;

    3、TCP结束请求报文通过IP(DNS)->MAC(ARP)->网关->目的主机;

    4、目的主机收到数据帧,通过IP->TCP,TCP协议单元回应结束应答报文;

    5、当前只是进行回应,因为目的主机可能还有数据要传,并不急着断开连接;

    6、该报文中ACK标志位设为1,表示收到结束请求;

    7、目的数据发送完所有数据后,向我的主机发出TCP连接结束请求报文;

    8、该报文FIN标志位设为1,表示结束请求;

    9、TCP结束请求报文通过IP(DNS)->MAC(ARP)->网关->我的主机;

    10、我的主机收到数据帧,通过IP->TCP,TCP协议单元回应结束应答报文,此时进入TIME WAIT状态,因为不相信网络是可靠的,如果目的主机没收到还可以重发;

    11、该报文中的FIN标志位均设为1,表示结束应答;

    12、该TCP回应报文通过IP(DNS)->MAC(ARP)->网关->目的主机;

    13、目的主机关闭连接;

    14、TIME WAIT等待结束后,没有收到回复,说明目的正常关闭了,我的主机也关闭连接。

    这里的过程是以我的主机主动发起结束请求开始的,实际上也可以由目的主机主动发起,那么过程就会跟上面相反,但细节差不多。

    FIN_WAIT状态是主动发起请求时等待确认信息,而TIME_WAIT状态是收到结束请求后发送确认信息后等待看是否需要重发。

    现在来说说为什么断开连接时需要四次挥手呢?因为建立连接时目的主机可以直接发送SYN(同步)+ACK(应答)报文。而当断开时,目的主机收到FIN后可能还有数据要发,并不一定直接断开,所以先发送一次应答,告知我的主机收到了请求,等确认所有数据都发完了,再发送FIN,同时等待我的主机应答,这里的FIN和ACK就不能一起发送,所以需要四次。

    4.2.5总结一下:

    以上就是主机访问网站时的网络通信全过程,归纳起来就是:

    首先要通过域名找到IP,如果缓存里没有就要请求DNS服务器;得到IP后开始于目的主机进行三次握手来建立TCP连接;连接建立后进行HTTP访问,传输并获取网页内容;传输完后与目的主机四次挥手来断开TCP连接。

    展开全文
  • 关于计算机网络通信协议

    千次阅读 多人点赞 2018-11-30 22:25:07
    open system interconnection :开放式系统互联,ISO发起,其任务是指定国际计算机通信标准,特别是促进兼容系统间的互联。 www:world wide web 万维网 HTML:hyper text transfer protocol 超文本传输协议 CGI:...
  • 计算机网络通信的详细过程

    千次阅读 2019-06-13 01:41:20
    在详细了解,网络通信,之前首先要构建一个简单的网络。 计算机网络体系结构,分为三种:OSI的7层协议、TCP/IP的四层协议、五层协议。其中五层协议的体系结构是我们必须知道: 每层对应的功能及协议 功能 ...
  • 计算机网络通信三要素

    千次阅读 2019-02-20 13:35:33
    1、IP 2、 端口 3、 传输协议 传输协议:TCP 、UDP TCP: ①面向连接,传输数据之前需要建立连接;②通过三次握手的方式完成连接,是安全可靠协议;③传输速度慢,效率低 ...①面向无连接,传输数据之前源端和目的...
  • 计算机网络通信中常用的相关协议

    千次阅读 2018-07-20 14:42:47
    1、TCP/IP(Transmission Control Protocol /Internet Protocol)协议  TCP/IP是基于TCP和IP这两个最初的协议之上的不同的通信协议的大集合 ... IP是网际协议,负责计算机之间的通信,负责在因...
  • 发展现状: 光通信技术时代 传统的通信技术和传输手段已经不能满足大家日益提升的精神需求和工作需要, 于是 便产生了以光纤为代表的光通信技术,成为了信息传播的首选技术, ...移动网络通信时代 从最初的 GSN 到...
  • 计算机网络通信技术原理是什么?

    千次阅读 2019-06-16 22:57:58
    模拟数据通信和数字数据通信 1.几个术语的解释 1)数据-定义为有意义的实体。数据可分为模拟数据和数字数据。模拟数据是在某区间内连续变化的值;数字数据是离散的值。 2)信号-是数据的电子或电磁编码。信号可分为...
  • 通信方面的安全,重点在下述的两个领域:第一个是信息在进行传递过程中的安全,第二个是信息在进行存储过程中的安全。 使用链路的方式进行加密 过程:因为在所有中间部位的传递节点当中,消息全部被经过解密以后,...
  • 一、数据通信:通过某种传输媒介(例如电缆,光缆,双绞线等)进行数据交换(以0、1形式表示)的过程,包括本地通信和远程通信。 1、数据通信系统的有效性基于三个基本方面: (1)传递,系统能够将数据从传递到...
  • 计算机网络研究的是理论,讲究的是网络过程中的连接方式,还有协议制定的原因,为什么这么指定,它不是一个简单的敲代码,做码农就好了的,关键是在于创新,先是理解协议为什么这么制定,要怎么样才可以更加好的指定...
  • 分组交换是现代计算机网络通信的理论基础 随后包交换从理论应用到实践 1965年 ARPA资助进行分时计算机系统的合作网络研究。 随后ARPANET被提上了日程 1968年 开始着手建设ARPANET 它利用了无限分组交换网与卫星通信...
  • 计算机网络协议——通信协议综述

    万次阅读 多人点赞 2019-09-03 23:20:58
    通信协议综述概述一、为什么学习网络协议1.1 常见的网络协议二、网络分层的真正含义2.1 为什么网络要分层?2.2 浏览点击请求过程2.3 揭秘层与层之间的关系三、ifconfig 命令行的由来3.1 ip地址3.2 无类型域间选路...
  • 众所周知,计算机只能读取二进制的数据,而这些二进制数字信息在传输过程中可采用不同的代码,这些代码的抗噪性和定时能力各不相同。 ● 最基本的数字编码有单极性码、极性码、双极性码、归零码、不归零码、双相码六...
  • 计算机通信网络

    千次阅读 2017-01-22 23:35:50
    计算机通信网络
  • 计算机网络通信方式

    千次阅读 2020-02-22 17:13:53
    我们首先要了解计算机网络给我们提供的两大功能: 共享:资源共享。可以是信息共享、软件共享和硬件共享 连通性:计算机网络使上网用户可以交换信息,好像这些用户的计算机都可以批次直接连通。 因特网可以分为两大...
  • 网络通信三要素 IP地址       计算机在网络中的唯一标识,通过IP找到通信所在的机器。       32bit(4字节),一般用“点分十进制”表示,如192....
  • 计算机通信网络

    2007-10-12 22:36:00
    定义:凡将地理位置不同、具备独立功能的多台计算机、终端及其附属设备,用通信设备和线路连接起来,且配以相应的网络软件实现通信网资源共享者 都可称作计算机网,运行网络操作系统的计算机通信网就是计算机网络。...
  • 计算机通信网通常也简称为计算机网络。它是计算机的运算和处理功能同通信系统的信息传输功能相结合的产物。这两种功能的结合所产生的效果远远超过了它们各自发展所能达到的目标。今天,不管是哪个国家的、从事哪个...
  • 【期末复习】计算机通信网络

    万次阅读 多人点赞 2019-01-09 11:43:03
    1.理解计算机网络定义和组成 2.理解网络的类型及其特征(网络拓扑结构、网络覆盖范围) 3.掌握网络体系结构的概念 4.掌握协议概念和要素 5.掌握OSI/RM体系结构的七层模型及各层功能 6.掌握TCP/IP体系结构各层...
  • 最近在研究RDMA的实时流处理系统,其中需要比较RDMA高速网络通信和传统Socket网络通信的传输特点进行比较。所以我们就来总结游戏传统Scoket网络通信的特点,对于一个程序开发人员来说,我们还需要了解Scoket网络通信...
  • 计算机网络-进程通信

    2018-04-20 13:22:20
    当程序运行在不同的端系统上时,需要通过计算机网络交换报文而相互通信。发送进程生成并向网络中发送报文;接收进程接收这些报文并可能通过将报文发送回去进行相应。进程与计算机网路之间的接口进程通过一个称为套接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,596
精华内容 15,038
关键字:

计算机网络通信