网络设备

以太网

整个以太网的重心就是以太网卡。所以以太网的传输主要就是网卡对网卡直接的数据传递。IEEE802.3;CSMA/CD(冲突检测的载波侦听多路访问)

  • 监听介质情况:A主机发送数据包前,需要对网络介质进行监听,确认没有人在使用后,才能发出数据帧。
  • 多点传输:A主机发送的数据会被集线器复制一份,然后发送给所有连接到此的集线器主机。只有目标主机选择接受,其他主机主动放弃
  • 冲突检测:若其他主机B也刚好在同一时间发送数据帧,那么A与B数据冲突(出车祸),此时数据被毁坏,那么A与B会各自随机等待一个时间,然后重新通过第一步发送数据帧

集线器Hub

  • 集线器属于OSI的第一层物理层设备
  • 集线器是一种网络共享介质设备,单一时间内,仅能被一台主机使用
  • 集线器所有端口在一个冲突域内

以太网桥和交换机(二层)

  • 交换机与集线器的差异,是可以记录每个port与其连接PC的MAC地址
  • 分割了网络冲突域,使网络冲突被限制在最小的范围内
  • 交换机能隔离冲突域,不能隔离广播域
  • 扩展了网络带宽

路由器

  • 网关/路由器的功能就是负责不同网络之间数据包的转递(IP Forwarding)
  • 路由的实现依靠路由器中的路由表来完成
  • 分隔广播域
  • 同一网段内机器,如果删除了路由记录,也无法Ping通

VLAN

  • VLAN = 广播域= 逻辑网络 (Subnet)
  • IEEE 802.1Q 帧结构

  • VLAN ID,12bit,表示该数据帧所属VLAN的编号。VLAN ID取值范围是0~
    4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094

TCP/IP 协议栈

传输控制协议/因特网互联协议,定义了四层。

TCP端口号

  • 传输层通过port号,确定应用层协议(0-65535)
  • 0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久的分配给固定的
    系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
  • 1024-49151:用户端口或注册端口,但要求并不严格,分配给程序注册为某应
    用使用,1433/tcp(SqlServer), 1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp
    (memcached)
  • 49152-65535:动态端口或私有端口,客户端程序随机使用的端口
    其范围的定义:/proc/sys/net/ipv4/ip_local_port_range

tcp协议和udp协议对⽐的优缺点?

  1. TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。

  2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。

  3. UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

  4. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。

  5. TCP对系统资源要求较多,UDP对系统资源要求较少。

UDP以其简单、传输快的优势,在越来越多场景下取代了TCP。
(1)网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。
(2)TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。

简述tcp三次握⼿和四次挥⼿过程及各过程中客户端和服务器端的状态

三次握手

  • 客户端向服务器端发送SYN包,客户端进入SYN_SEND状态。

  • 服务器端收到客户端发送的包返回ACK+SYN包,服务器端进入SYN_RECV状态。

  • 客户端收到服务器端返回的包再发回ACK包,客户端进入ESTABLISHED状态,服务器端收到包也进入ESTABLISHED状态。

    四次挥手

  • 客户端发送FIN包询问服务器端是否能断开,客户端进入FIN_WAIT_1状态。

  • 服务器端收到客户端发送的包并返回ACK包,服务器端进入CLOSE_WAIT状态。

  • 服务器端准备好断开后,发送FIN包给客户端,服务器端进入LAST_ACK状态。

  • 客户端收到服务器端发送的包后返回ACK包,客户端进入TIME_WAIT状态,服务器端收到包后进入CLOSED状态。