python网络编程之计算机网络基础内容

IP协议

IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

 

IP地址

IP地址分为两类:IPV4和IPV6

IPV4为最常用地址,由32位二进制组成,为了方便记忆一般写成4位十进制用“.”分隔的形式

IP地址是由网络号和主机号组成,如果网络部分相同,则处于同一网段,处于同一网段的两个ip可以直接通信(ping)

IP地址分类

其中ABC三类地址的网络号和主机号为:

IP地址中的特殊地址

 

子网掩码

子网掩码在形式上就是网络号全为1,主机号全为0的IP地址

例如192.168.1.100/24的子网掩码为255.255.255.0,其中24表示网络号的长度。

子网掩码是用来分辨两个IP地址是否处于同一网段的,把IP地址与对应的子网掩码进行与运算,得到的结果相同则两个IP地址的网段相同

 

MAC地址

能够接入网络的设备都具备网卡,每块网卡在诞生时都配备了一个全世界唯一的MAC地址

长度为48位2进账,通常写成12位16进制的形式,前六位是厂商,后六位是流水号(如window下的 00-40-9D-45-0B-30)

ARP协议

又称地址解析协议,是一个根据IP地址获取MAC地址的TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

 

路由器

路由器(Router)又叫网关设备(Gateway),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。具有判断网络地址和选择IP路径的功能,所以不同网段之间的通信需要借助路由器(网关设备)来实现

 

端口

 一台主机可以提供很多服务,比如Web服务,FTP服务和SMTP服务,这些服务都是通过一个ip地址通信的,显然IP地址和网络服务是一对多的关系,所以需要通过

 


现在Internet上流行的协议是TCP/IP协议,该协议中对低于1024的端口都有确切的定义,他们对应着Internet上一些常见的服务。这些常见的服务可以分为使用TCP端口(面向连接)和使用UDP端口(面向无连接)两种。

TCP协议

 当应用程序希望通过TCP与另一个应用程序通信时,就会发送一个通信请求,送到确切的地址,在双方达成共识之后(握手)后,建立一个全双工通信,占用着两个计算机之间的一条通信线路,直到被一方或双方关闭为止。

TCP是传输层里的协议,使用三次握手建立连接,四次挥手关闭连接

上图中报文的含义为 SYN(建立联机)、ACK(确认)、seq(顺序号码)、FIN(结束报文)

 

三次握手:(由客户端发起)

1. 客户端向服务器发起建立连接请求(SYN)

2. 服务器回应“请求确认”(ACK),并也向客户端发起建立连接请求(SYN)

3. 客户端回应“请求确认”(ACK),双方连接建立完成 

 

四次挥手:(由谁发起都可以)

1. 客户端向服务器发起断开连接报文(FIN),并告知对方“我已经准备好断开连接了”(ACK)

2. 服务器第一时间回应“请求确认”(ACK),但多数情况下并不能马上断开,需要进行断开连接的准备工作。(这也是比三次握手多一次的原因

3. 服务器已经做好断开连接的准备,向客户端发起断开连接报文(FIN),告知“我也准备好断开连接了”

4. 客户端收到服务器的断开准备确认(ACK)后,需要回复一个(ACK)来和服务器确保网络正常,若服务器没有收到最后的ACK,则可以请求重传;若收到了,就可以安心断开连接了。另外在客户端发送完最后的ACK后,等待2MSL后没有收到任何重传回复,则也可以安心断开连接了。(这里的2MSL是最大报文生存时间,我们必须做最坏的打算来考虑网络不可靠的情况,在关闭前等待是否有丢失的报文需要重传

 

UDP协议

两个应用程序之间进行UDP通信时,不需要建立连接,第一目的是尽可能快地送到目的地址处

 

总结对比UDP和TCP

TCP       传输控制协议;面向连接的、可靠安全的字节流服务。由于必须建立连接,以及传输数据过程中有超时重发、数据去重、数据校验、流量控制等功能,所以能保证数据传输的质量;因为需要建立并在断开前一直占用该通道,所以资源开销大,效率相比UDP不高;常见用于要求较高的服务如FTP、Telnet、SMTP、HTTP、POP3

UDP       用户数据报协议;面向数据报、面向无连接、不提供可靠性的传输服务,一次性传递,简单而且速度快。常用于DNS,SNMP


 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值