计算机网络笔记

链路层的流量控制是点对点的,传输层的流量控制是端到端的。
    链路层流量控制手段:接收方收不下就不回复确认
    传输层流量控制手段:接收端给发送端一个窗口公告,告诉接受缓存之类的
    
    链路层流量控制方法:停等协议、滑动窗口协议(包括后退N帧协议GBN  和  选择重传协议SR)
    停等协议:发一个帧就停,收到对方的确认后再发下一个。    (是一种特殊的的滑动窗口协议)    慢,效率低
    滑动窗口协议:
    GBN维护发送窗口和接受窗口,可一次连续发送几个帧(发送窗口的大小),但是收到按序的确认(累计确认)后才能向前移动窗口。    如果出现超时,发送方重传所有已发送但未被确认的帧。 接收方无需缓存任何失序帧。    累计确认会造成批量重传
    
    SR接收窗口也>1, 接受方会缓存窗口范围内的失序帧  发送方只有收到了窗口下界帧的确认才会向前移动窗口,1帧或几帧,直到未确认的

    GBN接受窗口=1,SR接收窗口>1
速率、带宽、吞吐量:都是b/s,kb/s,Mb/s...

码元: 用一个固定时长的信号波形,代表一组离散值
    1码元可以表示多个bit :1bit、2bit、3bit   2种波形(状态)、4种波形、8种波形

波特:码元传输速率的单位 码元/秒  1波特表示每秒传输一个码元   = 1b/s、2b/s、3b/s

奈氏准则:极限码元传送速率为 2W baud , W是信道带宽,单位是Hz,太快了会失真
     极限数据传输速率2Wlog2V   V=2,4,8

香农定理:有噪声情况下  极限传输速率 = Wlog2(1+S/N)    W是信道带宽,单位是Hz, 信噪比S/N  db = 10log10(S/N)
    只要信息的传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错的传输。

PPP协议:常用于广域网、点对点链路、只支持全双工
    无需纠错、序号、流量控制
    需要封装成帧、透明传输、向上满足多种网络层协议、向下适应多种链路类型
    差错检测、连接状态检测
    最大传送单元MTU
    网络层地址协商

DHLC协议:面向比特的数据链路层协议、全双工



MAC地址:48位,如52-54-ab-31-ac-c6
    单播地址:第一位为0
    多播地址:第一位为1
    广播地址:全1

以太网只实现无差错接收,不实现可靠传输

以太网数据帧,最长1500+18字节,最短64字节
    帧太短可能造成发完整个帧后,帧在信道中和别人冲突了,但是发送者以为发送完了,没有冲突
    DataLength/Rbps > 2 * xindaoLength / v米每秒
    传输时间要大于两倍的最大传播时间,所以最短64字节,而且信道长度也不能太长


CSMA协议:载波监听多路访问协议。  先听后发

CSMA/CD:载波监听多路访问/碰撞检测  用于解决共享网络、半双工网络的冲突问题
    发送端:先听后发、边发边听、冲突停止、延迟重发
    接收端:边收边听,验证地址,验证帧校验
    
    只要经过2r时间没有检测到冲突,就可以确定发送过程中没有冲突。

CSMA/CA:载波监听多路访问/碰撞避免 “有礼貌” 适用于无线局域网(因为冲突检测难以实现)
    发送端:先听后发,空闲则先发一小段报文(RTS request to send ),
    接收端:若准备号则发回CTS(clear to send)
    发送端:若收到CTS则发送数据,并预约信道,申请一段时间
    接收端:若成功接受,则发回ACK
    发送端:若无ACK,则延迟重发
ALOHA协议: 纯ALOHA:不监听信道,不按时间槽发送,随机重发。想发就发。    发送方不检测冲突。没收到ACK就重发。
           时隙ALOHA:划分时间片,想发送只能在时间片开始时发送,遏制想法就发的程度。


IP数据报:首部+数据部分(TCP、UDP段)
    首部可分为固定部分(20B)、可变部分
    固定部分包括:
        版本:IPv4、IPv6
        首部长度 (5~ 15) * 4B、 单位是4B
        总长度    0~65535  B
        标识、标记、片偏移 : 用于IP数据报分段
            数据报长度要<MTU
            同一数据报的所有分组使用相同值
            标志 中间位DF区分能否分配DF=0能分片  最低位MF区分是否为最后一片,最后MF=0,前面的MF=1
            片偏移  单位是8B
        生存时间TTL:每经过一个路由器就-1,变为0则丢弃
        协议 TCP对应的值是6、UDP17、ICMP、ICMP、OSPF
        首部校验和
        源地址、目的地址 32位
    可选部分:0~40B 排错、测量、安全

A 1.0.0.0 -- 126.0.0.0    1B网络号
B 128.1.0.0 --191.255.0.0    2B网络号
C 192.0.1.0 -- 223.255.255.0    3B网络号
D 224.0.0.0 -- 239.0.0.0
E 240.0.0.0 --255.0.0.0

0.0.0.0    本网范围内的主机
网络号全0,主机号为特定值  表示本网内特定主机
255.255.255.255  表示本网广播地址
网络号为特定值,主机号全0  表示一个网络
网络号为特定值,主机号全1  表示对一个网络上所有主机广播
127.x.x.x  用于本地软件测试

CIDR  128.14.32.0/20  20位网络号,12位主机号  最长前缀匹配

ARP协议:  ip -> mac  本网段  解决下一跳怎么走的问题
    封装过程中,为了获取目的主机的MAC地址 ,由目的主机的IP地址获取其MAC地址
    广播ARP请求分组,原ip+目的ip+原MAC+全1填充, 我的ip是xx,mac是xx,我想要目的ip的mac地址
    单播返回所请求的mac  ip+mac
    若目的ip不在同一网段,则目的mac填写默认网关的mac

ICMP协议:支持主机或路由器进行差错(异常)报告、网络探询
    发送特定ICMP报文,作为IP数据报中的数据
    ICMP报文:  作为ip数据报中的数据部分
        类型、代码、校验和、数据
    差错类型:
        终点不可达       无法交付时
        源点抑制  拥塞控制     拥塞丢数据时
        时间超过             TTL=0时   应用traceroute命令
        参数问题             首部字段有问题时
        改变路由(重定向)       有更好的路由时
    询问类型:
        回送请求和回答报文  主机或路由器向特定目的主机发出询问,收到此报文的主机必须给源主机或路由器发送ICMP会送回                答报文,例如对ping命令的回答,目的是测试目的主机是否可达,及其状态。
        时间戳请求和回答报文  请求某个主机回送当前日期和时间  

DHCP协议:动态配置IP地址,是应用层协议,使用C/S模式,基于UDP
    即插即用、允许地址重用,地址续租
    主机广播DHCP发现报文   “有没有DHCP服务器啊”
    DHCP服务器广播DHCP提供报文  “有” “有”  “有”
    主机广播DHCP请求报文    “我用你给的ip了,别人不用等了”
    DHCP服务器广播DHCP确认报文    “用吧”


RIP协议:  距离向量算法,路由器只掌握物理相连的邻居及链路费用   是应用层协议
      RIP允许一条路由最多只包含15个路由器,距离16表示网络不可达。
      仅和相邻路由器交换信息,信息是自己的路由表(目的网络,距离,下一跳),每30s更新一次,超过180s没收到就判断邻居死了。
      初始时,路由表中只有直接相连的网络。迭代至收敛。
      好消息传得快,坏消息传得慢
    
OSPF协议:  链路状态算法,所有路由器掌握完整的网络拓扑和链路费用信息
         Dijkstra最短路径算法

BGP协议:  自治系统AS之间的路由选择协议

UDP协议:  无连接的用户数据报协议       17
       服务:差错检测、复用分用
       特点:无连接;不可靠;适合少量数据、面向报文(不合并,不拆分,直接封装);无拥塞控制,适合实时应用
                  首部开销小8Byte,16位源端口号,16位目的端口号,16位UDP长度(0~65535),16位UDP校验和
       校验:16位一组,UDP校验和初始全0,二进制求和,和取反作为UDP校验和,校验时也加,和是全1则无错

TCP协议:   面向连接的传输控制协议   不提供广播或多播服务      协议号6
        特点:面向连接(虚连接);点对点;可靠有序,不丢不重;全双工;面向字节流(将应用层数据看成无结构的字节流)
        20Byte固定首部+选项+填充
        16源端口、16目的端口
         32序号        字节流中字节的序号(每个报文中第一个字节)
         32确认号    下一个想收到的字节序号
         数据偏移(首部长度,以4B为单位)、ACK、SYN··、    16窗口   SYN=1时表明是一个连接请求/接收报文   FIN=1时,表明要求释放连接
         16校验和、16紧急指针(URG=1时)                                   窗口指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量

DNS    端口号53
    主机:发送域名给DNS服务器,先查询本地域名服务器,本地不知道就去问根域名服务器,
        根问顶级,顶级问权限,权限问区,最后结果逐层返回 --纯递归查询   
        根把顶级的ip给本地,本地问顶级,顶级把权限的ip给本地。。。。 --迭代查询

    DNS服务器返回域名对应的ip地址
    主机接下来通过ip地址建立通信
    
    DNS服务器按树状层次划分
    根->顶级域名服务器->权限域名服务器

FTP
    基于C/S,用户通过一个客户机程序连接至在远程计算机上运行的服务器程序,使用TCP实现可靠传输
    服务器进程端口21、20       21:控制进程   20:数据传送进程  服务器主动模式    被动的大于1024随机
    提供不同类型主机系统(硬件软件系统可以都不同)之间的文件传输能力
    登陆
    ftp地址 用户名&密码
        匿名登陆

TELNET    端口号23

SMTP、POP3    端口号25      Foxmail、Outlook
        C/S模式、TCP连接
        SMTP发
        POP3收
    SMTP:
        命令、应答信息
        连接建立、邮件传送、连接释放
        请求连接
                220 Service ready
        HELLO命令
                250 OK / 421Service not available

        MAIL FROM  ..
                250 OK / 451(452、500..)
        RCPT TO .. 可以有1个或多个
                250 OK / 550 No such user here
        DATA
                354 start mail input;end with<CR><LF><CR><LF>
        data....
                250 OK  接收结束

        QUIT
                221 同意释放

    POP3:     TCP  C/S    端口号110
          

HTTP    端口号80        C/S
    无状态(cookie来弥补)、无连接
    URL不区分大小写
    服务器进程监听TCP的端口80

    方法 URL 版本 CRLF        版本 状态码 短语 CRLF
    首部字段名:值CRLF    首部字段名:值CRLF
    ···            ···
    首部字段名:值CRLF    首部字段名:值CRLF
    CRLF            CRLF
    实用主体            实用主体

    方法:GET、PUT、POST
    首部字段名:Host  自己的IP地址
             Connection close表示非持续连接、open。。
             Cooked  一个标识号,记录历史信息
             所用浏览器
    状态码:
        1xx:通知信息  eg:请求收到了、正在处理
        2xx:成功             eg:接受、知道了
        3xx:重定向      eg:完成请求还需采取进一步行动
        4xx:客户的差错 eg:请求出错、不能完成
        5xx:服务器出错 eg:服务器失效、无法完成请求
             
   

posted @ 2020-04-12 13:58  荒Picasso  阅读(175)  评论(0)    收藏  举报