网络基础知识(一):网络分层、UDP协议

  1. TCP/IP四层:
    应用层、运输层、网络层、链路层
    应用层是用户进程,而其他三层是内核工作

  2. 应用层协议(TCP):
    FTP(21) 文件传输协议
    Telent(23) 远程登陆
    SSH(22) 安全远程登陆协议
    SMTP 简单邮件传送协议
    应用层协议(UDP):
    DNS(53) 域名解析协议
    BOOTP(68) 引导程序协议
    TFTP(69) 简单文件传送协议
    SNMP 简单网络管理协议
    传输层协议: TCP/UDP
    网络层协议: IP/ICMP/IGMP
    ICMP 用于交换错误报文,Ping和Traceroute使用ICMP
    IGMP 组管理协议,用于UDP的跨路由器组播
    ICMP/IGMP都被封装在IP数据报中(类似TCP/UDP一样)
    链路层协议: ARP/RARP

  3. IP:
    网络层提供的是逐跳协议,不可靠服务,TCP是在不可靠的IP层上提供可靠的运输层
    IP的错误处理方法:丢弃该数据报,并发送ICMP消息报给源端

  4. 互联网地址分类:
    类型 开头 网络号(bit) 主机号(bit)
    A 0 7 24
    B 10 14 16
    C 110 21 8
    D 1110 多播组号共:28位
    E 11110 (保留,共27位)

  5. 广播地址:
    网络号和主机号全为1:受限的广播地址,不能被路由器转发
    有网络号,主机号为全1的:如果有固定子网号,则向该子网广播,否则子网号为全1的,向该网络的所有子网广播。

  6. 报头大小:
    IP 20字节
    TCP 20字节(可扩展)
    UDP 8字节
    ARP 28字节

  7. 链路层有三个目的:
    IP数据报的发送和接受、ARP的请求和应答、RARP的请求和应答。

  8. SLIP:串行线路IP,串行线路的速率较低,一般用于小的TCP分组交换

  9. localhost的IP地址为127.0.0.1,是A类地址,没有进行子网划分。

  10. 网络字节序:
    是大端存储,即高位字节存在地位地址中,是由于TCP/IP首部中所有的二进制整数在网络中传输都以这种次序,而我们PC机一般都是小端存储。

  11. IP数据报大小:
    一般链路层都会对IP数据报进行分片,主机一般不接收超过576字节的数据报。由于TCP是流传输,因此无影响,而UDP一般都限制用户的数据报长度为512字节。
    注意:NFS文件系统允许超过8192字节的IP数据报

  12. IP路由选路过程:
    1)搜索与目的IP地址完全相同的表目;
    2)搜索目的网络号匹配的表目;
    3)搜索默认表目;
    4)以上都没有,则向原地址发送“主机不可达”或“网络不可达”的ICMP报文
    注意: 1)IP的逐跳协议,为一个网络指定一个路由器即可,这样可以大大减少路由表的大小,比如整个Internet上的路由器只有几千个表目;
    2)整个IP路由的过程当中,目的IP地址始终是不变的,但是每一跳的链路层的目的MAC地址始终都指向下一跳的链路层地址(且一般都是默认的)。如果是跨路由器的,那么下一跳的MAC地址是由该网络的路由器告知的。

  13. 大多数的子网例子都是B类地址,一个包含30个子网的B类地址比30个C类地址的好处是:减小路由表的规模。因为子网对于路由器外是透明的,对于网络内部是不透明的。

  14. MAC地址是48bit,IP地址是32bit
    使用 arp -a 查看ARP告诉缓存,每一项的生存时间是20分钟

  15. 以太网最小长度:
    60字节,而28字节的ARP+14字节的以太网首部=42字节,因此要填充至60字节。

  16. TCP中client的connect的连接超时时间一般为:75s。这个时间其实是有ARP的请求时间决定的。
    重点:如何减小connect连接超时时间?
    问题分析:因为connect调用阻塞时,我们即时退出应用程序,也要75s后才能继续使用,说明内部超时是在内核中工作的。我们应该在connect之前先将socket设置为非阻塞的,然后再调用connect,这时,无论是否成功都会立即返回,我们可以通过select的返回值判断是否连接成功。如果socket是可读可写的,说明连接失败;如果socket是可写的,说明连接成功。注意,在连接成功后要将socket重新设置为阻塞的,为什么?

  17. RARP作用: 由MAC地址获得IP地址。
    有盘系统一般在系统启动时,从磁盘上的配置文件中读取IP地址;而无盘系统就要通过RARP了。
    BOOTP: 解决了RARP是链路层协议,不能跨路由的问题。
    通常与TFTP协同工作,固化在无盘系统只读存储器中。
    一个无盘系统需要在只读存储器中实现下列协议:BOOTP、TFTP、UDP、IP和一个局域网驱动程序

  18. ICMP:
    报头大小是不固定的,一个“UDP端口不可达”的ICMP报文大小是70字节:
    以太网头(14) + IP头(20) + ICMP头(8) + 产生差错(不可达)的IP头(20) + UDP头(8) = 70字节
    ICMP重定向报文可以更新路由表

  19. Traceroute命令用于查看主机到另一主机的路由,而Ping命令也有这个功能,但是Ping命令只能存9个IP地址。
    Traceroute和Ping区别:
    Ping每隔1s发送一个包,不管是否接受到回复;
    Traceroute直到收到应答或超时才发下一个。
    TTL一般为255,数据报每经过一个路由器就减1,直至为0时丢弃。TTL的存在为了防止数据报无休止的在网络中。
    Traceroute工作流程:首先发送TTL为1的数据报,第一个路由器将TTL减1,丢弃该数据报,然后回送超时ICMP报文,这样就获得了路径上第一个路由器地址。然后发送TTL为2、3…依次获得路径地址。而如何判断到达主机呢?由于到达主机后,不会回送超时ICMP报文,所以我们发送的源数据报中要使用一个不可能的值作为UDP端口,这样当目的主机接收到数据报后就会回送一个“端口不可达”错误,这样我们就知道到达目的主机了。

  20. IP选路可以分为静态选路和动态选路。
    静态选路
    1)通过route命令增加表项(通常从系统自引导程序文件中)
    2)通过ICMP重定向生成表项(通常在默认方式出错的情况下)
    动态选路:
    只有在 1)网络很小
    2)与其他网络只有单点连接
    3)没有多余路由
    三个条件都满足时才用静态选路,否则都是动态选路,所以显然动态选路更常用。
    动态选路协议: 1)用于同一自治系统路由器间的内部网关协议(IGP)
    a)RIP 易受攻击
    b)OSPF 客服了RIP的所有限制,广泛使用
    2)用于不同自治系统路由器间的外部网关协议(EGP)
    BGP 使用TCP作为传输层协议
    3)无类型域间选路(CIDR):防止路由表膨胀

  21. UDP首部8字节:
    16位源端口、16位目的端口、16位UDP长度、16位检验和
    TCP发生检验和差错的概率比UDP高得多,因为TCP一般用于远程连接,而UDP一般为本地通信。
    UDP分片除了最后一片以外都是8的整数倍大小。

  22. 混杂模式:多数接口都为混杂模式,可以接收每个帧的复制,tcpdump就是这种模式。

  23. 广播的问题:增加了对广播不感兴趣主机的处理负荷。
    解决: 使用组播
    组播: 由于多播都是D类地址,所以开头4位为1110,且多播组号中的高5位在映射过程中被忽略,例如:
    224.128.64.32和224.0.64.32被映射为同一以太网地址(他们的高9位相同)
    多播目前还不能在广域网中进行。

  24. 广播分组长度最大为1472
    原因:以太网MTU为1500,减去20字节IP头和8字节UDP头为1472,如果是1473,由于大于MTU,会被链路层分片,而广播地址是不允许被分片的,所以会返回“Message too long”错误。

  25. DNS指针查询:给定IP地址,返回域名
    为了减少DNS通信量,所有的名字服务器都使用高速缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值