ip,arp,icmp两大应用,tcp三握四挥,udp理论白话讲解,易懂
昨天给大一同学上课,在这里总结一下大致内容。
IP、ARP、ICMP、TCP/UDP,四大部分。耗时两小时,没有讲得很细,主要帮助他们理解。
IP,先从Ipv4开始讲,ipv4总共32位,255.255.255.255。2^32约等于42.9亿个ipv4地址,远远不够现在物联网时代的需求所以也延伸了ipv6地址,但是今天的内容是围绕ipv4,IP编址:网络位、主机位。
这里例子192.168.1 代表是c类私网地址的网络位。后者的.1代表这个子网的主机位。说到IP编址这里就要说一下网络地址和广播地址,网络地址其实是用于确定网络设备位置的逻辑地址,广播地址其实是专门用于同时向网络中所有工作站进行发送的一个地址。例如192.168.1.1/24 ,网络地址就是192.168.1.0,广播地址就是192.168.1.255,可以通过ip地址和子网掩码来算出网络地址和广播地址。IP地址分类
这里着重讲了a,b,c三类地址,网络位分别为8,16,24 主机位分别为24,16,8 。私有地址范围:a类 10.0.0.0~10.255.255.255 b类 172.16.0.0~172.31.255.255 c类192.168.0.0~192.168.255.255。
子网掩码:默认子网掩码a类255.0.0.0 b类255.255.0.0 c类255.255.255.0 默认掩码也代表着其网络位。可变长子网掩码:用例子来讲述 子网为192.168.1 如教室1有10台电脑,教室2有20台电脑,教室3有30台电脑,但是需要教室之间进行隔离,但是三间教室主机都很少,分子网去划分,造成了有类ip地址的浪费,这样设计就想当不合理,使用率就会很低。比如设计时,把子网掩码设置为27,这样主机数就只有32,可用主机数30 地址就是从192.168.1.224~192.168.1.255 。 这样就不会造成资源的浪费。
顺带简单讲解了一下网关的作用,1,转发来自不同网段的数据包。2,处理arp请求。
明天在更arp,icmp,tcp/udp
ARP,概念:当网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址来获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。
通过一个实验来形象化的解释。网络拓扑如下,已配置交换机,pc之间都可以通信。
先进入pc1,pc3,查看arp表
表内无信息
然后抓包,pc1去ping pc3
arp不知道目的mac地址,通过广播去给发包,回应的就是目的ip,然后就得到了目的ip的mac地址,得到mac地址后就ping五个包。
此时arp表里面也会记录目的ip和目的mac 这叫做arp缓存。缓存有有效期,过了有效期就会被删除。如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址,然后将数据发送给网关,网关再把数据转发给目的设备。
免费ARP主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP Request报文来进行地址冲突检测。
主机A将ARP Request广播报文中的目的IP地址字段设置为自己的IP地址,且该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经被某一个主机或网关使用时,该主机或网关就会回应ARP Reply报文。通过这种方式,主机A就能探测到IP地址冲突了。
ICMP,概念:Internet控制消息协议ICMP(Internet Control Message Protocol)是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
ICMP是TCP/IP协议簇的核心协议之一,它用于在IP网络设备之间发送控制报文,传递差错、控制、查询等信息。
从两个应用入手,ping和tracert。
ping,Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。
Ping常用的配置参数说明如下:
1. -a source-ip-address指定发送ICMP ECHO-REQUEST报文的源IP地址。如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-REQUEST报文发送的源地址。
2. -c count指定发送ICMP ECHO-REQUEST报文次数。缺省情况下发送5个ICMP ECHO-REQUEST报文。
3. -h ttl-value指定TTL的值。缺省值是255。
4. -t timeout指定发送完ICMP ECHO-REQUEST后,等待ICMP ECHO-REPLY的超时时间。
tracert,路由追踪
Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。Tracert是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。
Tracert常用的配置参数说明如下:
1、-a source-ip-address指定tracert报文的源地址。
2、-f first-ttl指定初始TTL。缺省值是1。
3、-m max-ttl指定最大TTL。缺省值是30。
4、-name使能显示每一跳的主机名。
5、-p port指定目的主机的UDP端口号。
TCP/UDP
传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据包协议UDP(User Datagram Protocol)。
tcp端口号:常见的21,80,443,23,25,。不同端口用来区分不同服务。
着重讲解TCP的三次握手和四次挥手
tcp被称为可靠传输协议
三次握手:
- 主机A对服务器A发送请求连接
- 服务器A收到了主机A的请求,回应请求说我可以跟你进行,连接,但是你得再回应我,这样才能保证我的回应你收到了
- 主机A收到这样的回应后,便会再次回应服务器A说,你刚才了的回应我这边收到了,可以进行连接了
这样三次握手后便进行了可靠连接。
四次挥手:
- 主机A对服务器A发送请求说我想跟你断开连接,收到请回应
- 服务器A接到请求后说收到回应了,但是我这边还没有准备好断开连接,等我准备好了我会再次回应你断开连接
- 服务器A再次回应说我这边已经准备好断开连接了,你那边收到此请求请回应。
- 主机A收到了服务器A的请求后,回应道我收到了你的请求,可以正式断开了
这样四次挥手后正式断开连接。
udp传输协议
udp是一种无面向连接的传输协议,不可靠。
在传输过程中可能会出现丢包的情况,即使丢包也不会重传。
举例说明,在和别人视屏通话过程中就是一种udp传输,视屏过程中可能会出现丢包,可能就是一瞬间的掉帧,不会因为这一瞬键掉帧再次传输,那样就达不到udp传输的快的特点。
总结一下tcp和udp各自特点,tcp可靠性高,但是速度较慢,upd速度较快,但是不可靠。
这就是两个小时的内容,更完。