谢烟客---------Linux之网络基础知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谢烟客---------Linux之网络基础知识相关的知识,希望对你有一定的参考价值。

本地网络通信

跨网络通信

主机间通信

互联网通信

ISO的OSI模型

网络:是什么,用什么设备

IPV4 IPV6 是什么

ipv4/ipv6首部格式

tcp首部/udp首部

通信的细节、拥塞控制、划动窗口

tcp有限状态机的转换



网络:将多个主机用通信线缆连接起来,实现通信、资源共享

硬盘与主板通信用基于工业标准的线缆和控制器即可完成

技术分享

网络通信,同轴线缆

    1)多个主机共用一个线缆,如何确定谁发和谁收:唯一的标识,IANA国际组织规范

    2)硬件生产的规范

    

局域网: parc (鼠标、LAN,GUI)


以太网 

    网络拓扑: 总线、环状

    多个主机共用一个底层通信信道,有冲突产生:解决方案CSMA/CD

    

1、CSMA/CD:解决对底层通信信道的争用问题

    冲突域:可能发生介质访问冲突的节点范围

    原理:

发时,帧听

边发边听,冲突即停,退后在发

技术分享

    解决冲突的方案:

        1)IBM的令牌环网

        2)协议:CSMA/CD,CSMA/CA,CSMA

    

2、网桥(brige)、交换机(switch):本地通信MAC

    隔离冲突域:主机少时,CSMA/CD能保证每个主机能够正常通信,主机多了,在任何时刻都有多台主机通信的需求,就需要将一个冲突域划分为多个冲突域。

技术分享

    网桥:两个端口,每个端口是一个网络,每个网络有多个主机,每个网络是一个冲突域

技术分享

    交换机:多个端口的网桥,每个端口接一个主机,冲突仅会和端口冲突(存储转发机制、双工模式)

技术分享

    原理:网桥、交换机中的MAC表(MAC及对应的端口)

        1、MAC表有记录对方MAC时,不广播

        2、MAC表没有记录对方MAC时,广播至另一个网络

    MAC:Media Access Control 介质访问控制    对同一个底层通信信道争用,定制的MAC地址

    48bits:前24位由IANA提供,后24位由厂商自定义(2^24=1600万)

    MAC地址固定在RAM中


    广播:MAC表中没有记录通信对方的MAC时,就向交换机、网桥的每个端口发报文,端口对应可能是一个网络或一个主机。

    广播域:广播所至之处


3、路由器:跨网络通信IP

    隔离广播域:主机少时,网桥、交换机能保证多个网络主机正常通信,一个交换机上有多个主机时,可能有许多主机都会给MAC表中未记录的主机通信,广播充满了整个网络,就需要将这个广播域划分成多个广播域。

    路由器:每个端口对应一个网络,每个网络有一个交换机

技术分享

    原理:路由中的路由表(IP及对应的网络)

    IP:逻辑标识网络及网络中每一个主机

        通信时:最终通信的是MAC地址

    netmask子网掩码:计算IP所在的网络(每个主机都会提供一个IP、netmask,本机IP和MASK相与和另一个IP和MASK相与结果对比。相同则在同一个网络,不同则在不同网络)

    默认网关:提供网络转发服务

    ARP解析:用IP地址进行本地通信所用到协议。ARP欺骗:通常将自己伪装成网关


4、广域网:跨城市,在一个大的区域通信。

5、城域网:通信集中在城市内部,属于不同的网络,用城市内部的路由器


6、主机与主机间的通信: 进程间通信、套接字通信 IP+port

    套接安:将IP和端口号套接起来,用来标识 哪个主机上的哪个进程

    建立通信需要建立一组套接字,发送方和接收方需要各自建立一个套接字

    端口号:标识当前主机每一个进程

        发送方:随机端口,访问别人

        接收方:被访问,众所周知的端口,便于访问

    发送方访问之后,关闭套接字

    接收方:被访问完毕后,套接字不会释放,便于二次访问 “帧听套接字/监听套接字”


    例如:发送方: 1.1.1.1:8999 接收方: 2.2.2.2:80

        1.1.1.1/2.2.2.2 主机地址

        : 分隔符

         8999/80 标识主机上的哪个进程


7、主机间通信:应用层通信,应用层标识

    URL 标识哪个主机哪个端口上所能支配的资源的哪个路径

    http://www.magedu.com/1/1.logo

        www.magedu.com 主机的地址

        /1/1.logo

            /  进程所能支配资源的起始路径

            /1/1.logo 进程所能支配的资源

    

8、ISO的OSI模型

    资源子网: 会话层、表示层、应用层          实现资源共享的设备或软件的集合

    通信子网: 物理层、数据链路层、网络层、传输层  实现网络通信的设备或软件的集合

1、在跨网络通信中,物理层和数据链路层经过每一个网络都会发生变化

2、原主机在每一层封装对应层的首部(源、目标),目标主机拆封装

技术分享 

数据通信原理:发送方 把通信连接建立指令和用户应用数据从上往下传输,逐层封装,直到最底物理层。而接收端把通信连接建立指令和用户应用数据从下往上传输,逐层拆封装,直到发起通信的对等层


各层传输的数据格式:

    物理层:比特流,PDU为比特

    数据链路层:,一个帧有多个比特,帧为整数字节,不同协议对应不同大小的帧。

    网络层:包或分组,一个分组有多个帧,不同协议对应不同大小的分组。

    传输层:在TCP/IP协议中,TCP数据为单位进行传输,UDP数据报为单位进行传输。

    应用层:以具体的数据报文为单位进行传输。


协议封装的原理

    封装应用层PDU

    封装传输层首部

    封装网络层首部,成为分组

    数据链路层首部和尾部,成为数据链路帧

    转换为比特流传送到物理介质 


通信子网的设备:通信的基础

    集线器、中继器、交换机、通讯线缆、路由器、网关硬件设备

集线器:多端口,共享一条背板的总线。物理层设备

数据链路层:网桥、二层交换机 MAC表(动态学习,时效性。静态指定,不更新,永久生效)


资源子网的设备:资源共享功能

    用户计算机、网络存储系统、网络打印机


信息:数据交换的一切原始内容

数据:信息的具体表现形式

信号:数据传输过程中表现形式

信道:在物理链路上通过物理协议建立的数据传输通道


基带:从信号源发出,不处理的信号 

基带传输:在信道中传输,不处理的信号


频带:从调制解调器发出,处理过的信号

频带传输:在信道中传输,处理过的信号


宽带:有最低频率和最高频率的宽度


并行:IDE,SCSI 数据在多条并行的信道上传输

串行:SATA,SAS 数据以串行方式一位一位的传输


单工通信    只能单向通信(只能接或只能发)

半双工通信   支持双向通信,某时刻只能单向 

全双工通信   支持双向通信,某时刻可发可收


信道复用

频分复用:按频带宽度复用,把一条高带宽的信道按照一定的频带宽度划分成若干个低带宽的子频带(或称子信道)

时分复用:将数据通信过程划分成一段段等长的时间片,这些时间片又划分成多个更小的时间间隙,每一个时间间隙可以用于一个用户信号的传输。交替的传输过程


波分复用:光波信号中的频分复用技术,



9、拆封装的过程 

    1、数据链路层:检查MAC,是本机拆封

    2、网络层:检查IP,是本机拆封。不是转发出去。

    3、传输层:检查PORT,本机上有此进程拆封。没有此进程,返回错误

    4、应用层:检查资源,本机有此资源。没有此资源,返回错误 


10、物理层:构建数据通路,透明传输,数据编码、传输管理

    透明传输:不同介质不同形式的传输信号 

    数据编码:传输介质多样,比特流转换为光信号

    一位一位的传送


11、数据链路层:构建逻辑通路,从数据链路观察逻辑通路    

    一帧一帧的传送


    在OSI或TCP/IP中分为一层

    在局域网中分为2层:逻辑链路控制子层(LLC),介质访问控制子层(MAC)


    差错控制

        数据在传输中可能会出现两方面问题

            有帧出现了错误

            有帧丢失

    差错控制功能

        差错检测

            奇偶校验

            循环冗余校验

        差错纠正

            反馈检测 接收方确认接收的内容是否同发送方所谓的结果,数据传输至少两次

            计时器超时 双方都要确认是否超时

            自动重发请求  前两者基础之上确认奇偶校验码

    MAC帧也被通常认为就是数据链路层帧,是在MAC子层实体间交换的协议数据单元(PDU).可以把所有以太网MAC帧的格式统一表示为下图所示


7    1      6       6    2 38~1500     4bytes

前导  帧起始 目的MAC地址 源MAC地址 长度/类型  数据        FCS


前导:实现帧的同步

帧起始:帧的开始、结束

目的MAC地址:

源MAC地址

长度/类型:以太网中帧的类型

数据:

FCS: 帧的校验序列,计算两次数据帧的


VLAN(Virtual Local Area Network,虚拟局域网)缩小广播域,将一个大的交换机所在网络划分成多个小网络

    划分方式:同一个交换机划分。不同交换机划分(跨越多个交换机,VLAN的中继功能)

    相互访问:1、基于二层协议。2、彼此独立,一个VLAN相当于一个独立的二层网络。3、跨VALN时,必须借助路由器。

 

12、网络层:分组从源端沿着网络路径传送到目标端

    1、路径选择

    2、数据包的封装和解封装

    3、透明传输

    4、拥塞控制


报文协议:

    TCP/IP结构的网络层:IP协议

        IPv4:ARP,ICMP

        IPv6:ND(Neighbor Discovery) 

IP协议:寻址、数据报封装、分段与重组(超过MTU分段,到达时,重组)


IPV4首部格式

版本: 4bit 协议的版本

首部的长度:4bit 固定20,可变40,最大数值15

区分服务:8bit

总长度(报头+数据) 16bits 

标识: 16bits,计数器,产生数据报的标识

标志:3it,前2位有意义,最低位MF,MF=1时,后面还有分片,MF=0表示最后一个分片。标志字段中间的一位是DF,DF=0时才允许分片。

片偏移:13位,现有分组在原分组中的相对位置。片偏移以8个字节为偏移单位

存活时间:TTL,8bit,数据报在网络中可通过的路由器数的最大值。ttl=1丢弃

协议:8bit,数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个处理

首部的校验和:16位,只检验IP的首部,不包含数据部分

源地址和目的地址:各占4字节

IP:4个字节,32bit,点分十进制

可选字段:丰富IP首部

填充:补充首部为4字节的整数倍


ARP协议:向数据链路传输时不需经过IP协议的封装,而是直接生成自己的报文

硬件类型 上层协议类型 MAC地址长度 操作类型 源MAC地址 源IP地址 目的MAC地址 目的IP地址

------------------------------------------

      ARP报头

ICMP  Internet Control Messsage Protocol Internet 控制报文协议(主机是否可达,网络延迟、控制:是否接收、响应)

请求:8,响应:0


ICMP首部


IPv4报头 20字节

ICMP报头:

类型:1

1-127

128+ 信息

代码:1 控制响应/应答

校验和:2 数据部分+报头校验 

标识:2

序列号:2 IPv4的标示

选项:可有可无,长度可变


三层交换机

    实现二层转发

    实现路由器IP路由功能

    

    三层路由模块:软件路由,纯硬件路由模块

局域网中实用


三层交换机原理:

比对三层硬件转发表-->目的转发表项内容是否存在-->存在转发,否则,路由表匹配,生成目的网络三层硬件转发表-->完成

比对三层硬件转发表-->目的转发表项内容是否存在-->存在转发-->完成


三层交换机和路由器的主要区别

三层功能实现机制不同

    硬件:三层交换机,三层硬件转发表,一次路由多次转发

    软件:路由器,每次都需要路由

适用环境不同:

局域网:三层交换机

广域网:路由器

多协议支持能力

VPN:路由器

路由能力不同

三层交换机非常强

    核心网络中:软件易于升级,


13、传输层:传输层与数据链路层的作用都是建立数据传输通道,两者在功能上存在许多相似之处

    同网段通信:二层交换机:数据链路层、物理层    

    不同网段通信:三层交换机:网络层、数据链路层、物理层 


    IP:主机间逻辑通信

    PORT: 进程间逻辑通信


    TCP:面向连接的协议:数据传输前,必须建立传输层的逻辑链路

    UDP:面向无连接的协议:数据传输前,不用建立传输层逻辑链路


    可靠通信的具体实现:

     每一端必须有两个窗口--一个 发送窗口 和 接收窗口

     窗口:告知对方所能接收数据的大小

     TCP可靠传输机制:字节的序号进行控制,

     所有的确认都是基于序号

     窗口:动态变化(窗口的大小,流量控制)

     TCP连接的往返时间RTT:动态的

     时间:确定数据丢失


TCP报文首部格式

源端口

目的端口

传输层与应用层的服务接口


序号:本报文段数据的第一个字节的序号

确认号:4字节:确认下次接收数据的数据起始位

数据偏移: 首部的长度。TCP首部至数据首部的长度。单位 32位字,

保留:

URG:1,(紧急)紧急处理。否则不紧急

ACK: 1,(确认)确认号有效,否则没用;确认下次接收数据的数据起始位

PSH: 1,(推送)尽快交付,不加入缓存队列。

RST: 1,(重置)重新发起连接

SYN: 1,(同步) 连接接受

FIN: 1,(终止) 释放已建立的连接

窗口:2字节

检验和:2字节,检验首部和数据

紧急指针:占16位,指出本报文段共有多少字节

选项:长度可变,

填充:能够让可变的部分为4字节的整数倍


TCP传输连接管理的三个阶段

主动发起连接的应用进程 :Client

被支等待连接建立的应用进程:Server


传输连接三个阶段:连接建立、数据传送、连接释放

传输连接的管理就是使运输连接的建立和释放都能正常地进行


建立过程中需要解决三个问题:

每一方能够确认对方的存在。

允许对方协商一些参数(窗口,服务质量,最大报文段长度)

运输实体资源(缓存大小,连接表中的项目)进行分配。


TCP传输信道连接的建立和释放中的通信双方主机的这些状态称之为"有限状态机"

*CLOSED:关闭状态,主机当前没有活动连接或正在进行传输连接

*LISTEN:监听状态,正在等待新的传输连接进入

*SYNSENT:表示主机已发出一个传输连接请求,等待对方确认

*SYNRCVD:表示主机已发出一个确认请求,等待对方确认

*ESTABLISHED: 连接建立,可以传输数据了。


TCP3次连接:

seq为上次ack请求下次数据起始的序号。

ack为上次seq序号加一,下次数据起始的序号。

seq = ack

ack = seq + 1

客户端:SYN=1 ,seq=x

SYNSENT

服务器:SYN=1,ACK=1,seq=y,ack=x+1

SYNRCVD

客户端:ACK=1,seq=x+1,ack=y+1

ESTABLISHED


重传超时:TCP协议保证数据可靠性。发送时,启动一个超时计时器,时间内必须回应

拥塞控制:控制网络拥塞的出现,网络中各个部分输入的流量大于输出的流量时,出现网络拥塞。

吞吐量:整个网络有效处理负荷的能力

输入负荷:网络发送端输入的负荷:理想情况吞吐量45度斜线上升。

拥塞控制方案

慢启动:避免出现网络拥塞而采取的一种TCP拥塞初期预防方案,逐渐增大,发送一定大小的字节,试探对方确定的速度,快的话,逐渐增加发送字节

拥塞避免:当拥塞窗口大小再次达到"阀值时",启用拥塞避免方案。

快速重传  接收端收到一个不是按序到达的数据段,TCP实体迅速发送一个重复上次ACK数据段,重复3次,而不用等到有数据需要发送时顺带发出确认。

快速恢复  连续收到3次重复的ACK号,即确认对应的数据段丢失,不在等待重传计时器超时就重传看来已经丢失的数据段。


UDP:用户数据报协议,在IP协议之上加了极少的功能:端口,差错检测功能

    优点:

        无连接,不保证可靠交付,不会用拥塞控制,面向报文,适合多媒体。速度快。


UDP首部

 16        16    16    16

源端口      目的端口 长度 检验和 数据


UDP应用

DNS主从复制,TCP

DNS解析:UDP

QQ:UDP

混杂模式:不管目的地是不是我,都可以窃听到

本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1957674

以上是关于谢烟客---------Linux之网络基础知识的主要内容,如果未能解决你的问题,请参考以下文章

谢烟客---------Linux之ip及ifcfg配置网络连接

谢烟客---------Linux之程序包管理基础知识

谢烟客---------Linux之总结Linux基础

谢烟客---------Linux之Bash基础特性

谢烟客---------Linux之DNS基础

谢烟客---------Linux之进程管理基础概念