网络通信
知识点
2台电脑的通信
两台电脑之间通过网线链接是可以直接通信的,但是需要提前设置好IP地址(必须不同)和网络掩码,并且IP地址需要控制在同一个网段内才可以通信,如:192.168.3.1和192.168.3.2
tcp-ip协议(族):是一类协议的简称,tcp-ip协议上百种,但是常用的有tcp和IP协议,如下图所示(仅列举了部分TCP/IP各协议之间的关系):
- 应用层的协议是由应用程序自己规定的
- 网际层又称网络层,网络端口又称链路层
- 端口不可复用是指各协议中的各自端口不可复用,但是不同协议中可以端口复用,如udp和tcp中都可以同时使用8080端口
TCP/IP协议传输示意图:
- 网络传输过程中,不同层负责的任务也都不同,链路层只负责包装/验证mac地址,IP层只负责包装/验证IP,传输层只负责包装/验证是否是TCP/UDP,应用层只负责包装/验证具体是哪一个应用。接受数据的一方层层解析的过程中,只要发现任何一层不符合,则会将该包丢弃
OSI和TCP/IP协议对应关系(面试)
Wireshark抓包工具
- x.x.x.255:表示的是广播地址,故其不可用
- 设置过滤:
- tcp
- udp
- ip.dst = 192.168.33.45 :筛选目的ip为192.168.33.45的通信信息
- ip.dst == 192.168.33.45 and tcp:筛选目的ip为192.168.33.45且是tcp的通信信息
- ip.src == 192.168.33.45:筛选发送给本机的通信信息
- udp.port = 2025:使用udp协议,且使用端口为2025的通信信息
使用集束器实现网络通信
子网掩码:
子网掩码的二进制位与IP的二进制位进行与运算,得到的结果就是该台计算机的网络号,通过这个可以判断两台机器是否处于同一个网络下。
物理地址
是网卡地址,即mac地址,前三个数表示网卡生产厂家,后三个数表示生产的是哪一块网卡。
网卡是收发数据最核心的部分
DNS服务器
DNS服务器是解析域名和IP对应关系的服务器,当我们请求域名时,机器先给DNS服务器发送消息请求解析域名和IP的关联关系
hub(集线器)
集线器通过广播发送数据,所以当集线器同时链接多台电脑时,在数据传输过程中就可能出现网络拥堵的情况,因此集线器的接口较少
交换机网络
arp协议
前提:
假设192.168.1.1需要向192.168.1.2发送消息,但是事先并不知晓192.168.1.2的mac地址
传输过程:
192.168.1.1先在本地缓存中查找192.168.1.2的mac地址信息,若未找到则先发数据给交换机,**发送的数据包中包含目标IP地址和mac地址(FF:FF:FF:FF:FF:FF)**,arp协议中默认链路层可接受两种mac地址,一个为本机mac地址,一个为FF:FF:FF:FF:FF:FF,交换机会在解析出数据包中mac地址,然后本机中查找mac地址和机器链接端口的对应关系。交换机将广播信息发给局域网内所有的机器后,所有机器的链路层都能够正常的解析FF:FF:FF:FF:FF:FF的mac地址,但是网络层解析时却只有192.168.1.2符合,此时192.168.1.2解析后发现为arp信息,故此时会单独发送mac地址信息给192.168.1.1,交换机也会记录下该mac地址与IP(端口)的对应关系,然后才开始进行正常的数据通信。
应用:
- 如果需要给同一个网络内所有机器发送数据,则直接将数据发送到x.x.x.255即可,这个是网内的广播地址,它会将数据发给网内的每一台机器
- 查看当前机器内存中记录的mac地址信息:arp -a
- arp攻击:在网内主动广播,告诉其它所有机器它发送消息的mac地址都是本机,则其它机器发送出去的所有信息都会发送到本机
交换机优点:
- 能广播就广播,需要单播时就单播
- 交换机工作于链路层,且使用过程中会自主记录下IP和mac地址的对应关系,当下一次需要发送数据时就不用再通过广播来查询对应IP的mac地址信息了
路由器链接多个网络
路由器
作用
链接两个及两个以上的网络彼此之间进行通信
组成
路由器上至少有两个以上的网卡,不同的网卡位于不同的网络内,而在同一台机器上的两个网卡之间是可以进行通信的
拓展
- 默认网关:具备数据转发的功能的设备,我们称之为网关。在此处路由器就相当于网关
- IP是逻辑上区别各个机器的东西,而mac地址是真实区别各个机器的东西
两个网络通信
前提:
假设192.168.1.1需要向192.168.2.1发送消息
传输过程:
- 本地打包好数据包,数据包中包含目标IP(192.168.2.1)、路由器在本网中的mac地址、本机IP、本机的mac地址等,然后将该数据包发送给路由器
- 路由器接受到数据包后进行拆包,然后去掉mac地址信息,读取目标IP地址信息,然后在本机路由表中读取目标IP机器的mac地址信息,将数据包通过交换机转发到该mac地址的机器(192.168.2.1)上
- 192.168.2.1接受到信息后,将回复数据包(内部mac地址为路由器在本网中的mac地址)发给路由器,然后路由器在通过上述的方式将数据传递给192.168.1.1
工作层次
路由器工作于网络层,传输数据依赖于它所存储的**路由表信息(各种传输路径的相关数据)**,若路由器无法确定下一步的地址,则会向源地址返回一个信息,然后将该数据包丢弃。
通信过程
网站访问
前提:
用户通过机器192.168.1.1访问百度网站
传输过程:
- 用户通过浏览器访问baidu.com时,机器会先读取DNS服务器的IP地址,然后将网址信息发送给网关,网关将数据包发送给DNS服务器
- DNS服务器接受到用户的请求后,会将baidu.com对应的IP信息回发给网关,网关将回复数据包发送给192.168.1.1机器
- 机器在接受到回发的数据信息后,开始正常的和baidu.com进行三次握手、Http数据交互、4次挥手
作业
(问答)如何保证两台电脑之间是否能够正常通信
(问答)tcp/ip协议族中将网络通信分为几层,根据不同的层请描述其对应负责的功能。
(问答)OSI协议中将网络通信分为哪几层,分别对应什么?
(问答)端口不可复用是指什么,什么情况下端口可复用
(问答)查看下图,请依次描述其中其中【物理地址】、【IPv4地址】、【IPv4子网掩码】、【IPv4默认网关】、【IPv4 DNS服务器】分别表示什么含义
(问答)集线器(hub)的工作原理及其缺点
查询当前机器缓存中的IP和mac地址信息
(问答)请描述交换机工作的原理
(问答)请简述交换机的优点
(问答)请简述路由器的组成和作用
(问答)请简述两个网络之间的通信过程
(问答)请简述访问一个网站时的通信过程