Linux知识心得05 互联网协议
今日内容:
互联网通信协议详解
ARP 协议
"""
arp协议由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我门了解到通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议
arp协议功能:广播的方式发送数据包,获取目标主机的mac地址
"""
# ***********arp协议工作方式************
# 1st:通信的第一步先拿到目标主机的IP地址
# 2nd:判断出目标主机与自己是否在同一子网里
# a.如果在同一个子网里,数据包的走向:
# 源主机--》本地交换机--》目标主机
# b.如果不在同一个子网里,数据包的走向:
# 源主机--》本地交换机--》本地路由器 -----》公网 --》目标路由器--》目标交换机--》目标主机
"""
详解:情况a
源主机:172.16.10.10/24
目标主机:172.16.10.11/24
Ⅰ 拿到目标主机ip与子网掩码:172.16.10.11/24
Ⅱ arp协议算出本机的网络地址、目标主机的网络地址(ip地址与子网掩码and计算出是否在同一子网络中)
源主机:172.16.10.0
目标主机:172.16.10.0
Ⅲ 判断源主机的子网地址与目标子网地址是否一样
一样的话,那么通信就是在同一个子网内通信,靠的是mac地址定位到对方在哪里
发送arp协议的广播包拿到目标主机的mac地址,格式如下:
自己的mac地址 FF-FF-FF-FF-FF-FF 172.16.10.10/24 172.16.10.11/24 数据部分
Ⅳ 发起真正的通信
自己的mac地址 目标主机的mac地址 172.16.10.10/24 172.16.10.11/24 源端口 目标端口 数据部分
PS:交换机只有在两种情况下才把包广播
①目标mac是:FF-FF-FF-FF-FF-FF
②目标mac不存在于mac列表中
----------------------------------------------------------------------------------------
详解:情况b
源主机:172.16.10.13/24
目标主机:101.200.10.22/24
Ⅰ 拿到目标主机的ip与子网掩码
Ⅱ arp协议算出本机的网络地址,目标主机和网络地址(ip地址与子网掩码and计算出是否在同一子网络中)
源主机:172.16.10.0
目标主机:101.200.10.0
Ⅲ 判断源主机的子网地址与目标子网地址是否一样
不一样,那么通信不在同一个子网内通信,靠的是路由器把数据包发出去
发送arp协议的广播包拿到目标网关的mac地址,格式如下:
自己的mac地址 FF-FF-FF-FF-FF-FF 172.16.10.1/24 101.200.10.1/24 数据部分
Ⅳ 发起真正的通信
自己的mac地址 目标网关mac地址 172.16.10.10/24 101.200.10.22/24 源端口 目标端口 数据部分
"""
# IP地址的两方面用途:
# 1.arp协议会把ip地址解析成mac地址
# 2.标识子网地址
子网划分

# ip
# 10101100.00010000.00001010.00000010 --》ip地址:172.16.10.2/24
# 10101100.00010000.00001010. --》网络号:172.16.10
# .00000010 --》主机号:2
#
# 子网掩码:用于识别ip地址中的网络地址和主机地址。
# 子网掩码也是32位二进制数字,在子网掩码中,对应于网络地址部分全用1表示,主机部分全用0表示
# 11111111.11111111.11111111.00000000
#
# 例子:判断不同的ip地址是否在同一子网内:
# 同一子网内
# 192.168.10.{0-255}/24
# 192.168.10.11/24 ----> 192.168.10.0
# 192.168.10.200/24 ----> 192.168.10.0
#
# 不同子网内:
# 192.168.10.{0-255}/25
# 192.168.10.11/25
# 11000000.10101000.00001010.00001011
# 11111111.11111111.11111111.10000000
# 11000000.10101000.00001010.00000000 -> 192.168.10.0
#
# 192.168.10.200/25
# 11000000.10101000.00001010.11001000
# 11111111.11111111.11111111.10000000
# 11000000.10101000.00001010.10000000 -> 192.168.10.128
#
# 引申知识:二层隔离与三层隔离
# 两台计算机接入不同的交换机,称之为二层隔离
# 子网地址不同,称之为三层隔离
# 结论:①二层隔离与三层隔离需要保持一致
# ②二层联通,三层可以隔离,即两台计算机接入了同一个交换机,不一定在一个局域网内
#
"""
特殊ip地址:
1.网络地址:用于表示网络本身,具有正常的网络号部分,而主机号部分全部为0的ip地址称之为网络地址,如172.16.45.0就是一个B类网络地址
2.广播地址:用于向网络中的所有的设备进行广播。具有正常的网络号部分,而主机号部分全为1(即255)的ip地址称之为广播地址,如172.16.45.255就是一个B类的网络地址
3.有限广播地址:指的是32位全位1(即255.255.255.255)的ip地址,用于本网广播
4.回送地址:网络地址不能以十进制的127作为开头,在地址中数字127保留给系统作为诊断用,称为欢送地址,如127.0.0.1用于回路测试
5.私有地址:只能在局域网内使用,不能在internet上使用的ip地址称为私有ip地址,私有ip地址有:
10.0.0.0~10.255.255.255,表示一个A类地址
172.16.0.0~172.31.255.255,表示16个B类地址
192.168.0.0~192.168.255.255,表示256个C类地址
注意!!!:这些地址是不会被Internet分配的,因此它们在Internet上也从来不会被路由,虽然它们不能直接和Internet网连接,但仍旧可以被用来和Internet通讯,我们可以根据需要来选用适当的地址类,在内部局域网中大胆地将这些地址当作公用IP地址一样地使用。在Internet上,那些不需要与Internet通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省IP地址资源
6.0.0.0.0:指已经不是真正意义上的ip地址,它表示的是所有不清楚主机和目的网络,这里的不清楚指的是在本机路由表里没有特定条目指明如何到达
"""
TCP 与 UDP 协议

# tcp可靠:可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
# tcp三次握手,建立双向链接
# tcp四次挥手,断开链接
# udp不可靠:不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
未完待续...
# 补充:(明日更新)
# socket套接字
# dns
# dhcp
# 网络通信整体流程

浙公网安备 33010602011771号