• TCP/IP 详解 卷1:协议


    一、概述

    1.2

    分层:

    链路层:设备驱动程序及接口卡
    网络层:IP、ICMP、IGMP(Internet组管理协议)
    运输层:TCP UDP
    应用层:Telnet、FTP、e-mail等

    可靠连接得由应用层提供。IP提供的是不可靠服务,尽可能快的把分组从源结点送到目的节点。

    应用层关心的是应用程序的细节,而不是数据传输活动。

    应用层和运输层使用端到端(end to end)协议,网络层提供逐跳(Hop-by-hop)协议。

    ICMP:IP协议的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要信息。
    IGMP:把UDP数据报多播到多个主机。

    IPV4五类地址:

    协议进入协议栈时的封装过程:

    数据帧分用过程:

    1.8客户-服务器模型

    重复型服务器:
    1、等待客户请求
    2、处理客户请求
    3、发送响应
    4、返回第一步

    并发型服务器:
    1、等待客户请求
    2、启动新服务器处理请求,可能生成新的进程、任务或线程,处理完成后终止新服务器
    3、返回第一步

    二、链路层

    2.1引言

    链路层三个目的:
    (1)为IP模块发送和接受IP数据报
    (2)为ARP模块发送请求和接受应答
    (3)为RARP模块发送请求和接受应答

    三、IP:网际协议

    特殊情况的IP地址:

    C类子网掩码划分:

    四、ARP:地址解析协议

    ARP的功能是在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射,点对点链路不设置ARP。

    ARP报文格式:

    目的地址为全1的特殊地址是广播地址,电缆上的所有以太网接口都要接收广播的数据帧。

    对不存在主机的ARP请求,tcpdump命令输出的超时限制为29.5秒,telnet大约在75秒。大多数BSD (Berkeley Software Distribution,伯克利软件套件是Unix的衍生系统)把完成TCP连接请求的时间限制设置在75秒。

    ARP高速缓存,一般对完整的表项为20分钟。不完整的为3分钟。

    RARP:逆地址解析协议

    RARP请求为广播方式,应答为单播方式
    超时重发机制,超时间隔采用递增方式,到一个阈值(大于42.80s时),重新设置为5.34秒,这种比每次采用相同值的方法要好。

    RARP服务器实现难点:
    在硬件层进行广播,不经过路由器转发,在关机状态下引导。通常在一个网络上(例如一根电缆)提供多个RARP服务器。

    RARP需要不同的帧类型字段吗?ARP和RARP都使用相同的值0x0806吗?

    答:一个单独的帧类型并不是必须的,因为op字段对于所有的四个操作(ARP请求,ARP应答,RARP请求,RARP应答)都有一个不同的值。但是实现一个RARP服务器,独立于内核中的ARP服务器,更容易处理不同的帧类型字段。

    2、在一个有多个RARP服务器的网络上,如何防止它们的响应发送冲突?

    答:每个RARP服务器在响应之前,可以延长一个小的随机时间。

    作为一个优化,可以指定一个RARP服务器为主服务器,其他的为次服务器。主服务器发出响应不需要延迟,而次服务器发出响应则需要延迟一个随机的时间。

    作为另一个优化,也是指定一个RARP服务器为主服务器,其他为次服务器。次服务器只对在一个短时间段内发生的重复请求进行响应。这里假设出现重复请求的原因是主服务器停机了。

    ICMP:Internet控制报文协议

    报文类型:查询报文,差错报文。

    下列不会导致产生差错报文:
    1)ICMP差错报文
    2)目的地址是广播地址或者多播地址(D类地址)的IP数据报
    3)作为链路层广播的数据报
    4)不是IP分片的第一片
    5)源地址不是单个主机的数据报。说明源地址不能为零地址、环回地址、广播地址或多播地址。

    ping程序

    利用ICMP回显请求回显应答报文,而不用经过传输层(TCP/UDP).
    Ping服务器一般在内核中实现ICMP的功能。

  • 相关阅读:
    Apache2支持py,pl,cgi,sh
    javascript利用Active操作本地文件
    桥接模式下的手机-电脑-开发板连接
    Django signal
    mysql改变表的编码字符集(utf8改为utf8mb4)
    Mysql 多表关联查询
    Python unicode转义字符u的处理
    How to filter a DateTimeField by date in Django?
    python闭包变量迟邦定
    Ubuntu16.04安装&创建Python虚拟环境
  • 原文地址:https://www.cnblogs.com/vstar-o/p/13758391.html
Copyright © 2020-2023  润新知