python课程总结day16

今日内容:

	1、互联网通信协议详解
		arp协议
		ip地址与子网划分
			ip地址的两方面用途:
				1、arp协议会把ip地址解析成mac地址
				2、标识子网地址
                
	tcp协议与udp协议
		tcp协议的三次握手与四次挥手	
	http
	补充:
		socket套接字
		dns	
		dhcp
		网络通信整体流程

arp协议

​ 简介:
​ 1、通信的第一步先拿到目标主机的ip地址
​ 2、判断出目标主机与自己是否在一个子网里
​ 如果在一个子网里,数据包的走向:
​ 源主机----》本地交换机 -----》目标主机

通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议

arp协议功能:广播的方式发送数据包,获取目标主机的mac地址

协议工作方式:每台主机ip都是已知的
	如果不在一个子网里,数据包的走向
		源主机-》本地交换机-》本地路由器---------》公网---------》目标路由器-》目标交换机-》目标主机
详解:
	源主机:  172.16.10.10/24
	目标主机:172.16.10.11/24
	1、拿到目标主机的ip与子网掩码
		172.16.10.11/24
		
	2、arp协议算出本机的网络地址、目标主机的网络地址
		源:172.16.10.0
		目标:172.16.10.0
			
	3、判断源的子网地址与目标的子网地址是否一样
		一样,那么通信就是在同一个子网内通信,靠的是mac地址定位到对方在哪里
		
		发送arp协议的广播包拿到目标主机的mac地址,格式如下
	
			自己的mac地址  FF-FF-FF-FF-FF-FF 172.16.10.10/24  172.16.10.11/24 数据部分
	4、发起真正的通信
		自己的mac地址  目标主机的mac地址 172.16.10.10/24  172.16.10.11/24 源端口 目标端口 数据部分
	ps:交换机只有在两种情况下才把包广播
		1、目标mac是:FF-FF-FF-FF-FF-FF
		2、目标mac不存在于mac地址表中
	源主机:  172.16.10.13/24
	目标主机:101.200.10.22/24
	1、拿到目标主机的ip与子网掩码
		101.200.10.22/24
		
	2、arp协议算出本机的网络地址、目标主机的网络地址
		源:172.16.10.0
		目标:101.200.10.0
				
	3、判断源的子网地址与目标的子网地址是否一样
		不一样,那么通信不在同一个子网内通信,靠路由器把数据包转发出去
		
		发送arp协议的广播包拿到网关的mac地址,格式如下
	
			自己的mac地址  FF-FF-FF-FF-FF-FF 172.16.10.10/24  172.16.10.1/24 数据部分
	4、发起真正的通信
		自己的mac地址  网关的mac地址 172.16.10.10/24  101.200.10.22/24 源端口 目标端口 数据部分


ip地址的两方面用途:

​ 1、arp协议会把ip地址解析成mac地址
​ 2、标识子网地址

IP协议(Internet Protocol)又称互联网协议,是支持网间互连的数据报协议,它与TCP协议(传输控制协议)一起构成了TCP/IP协议族的核心。它提供网间连接的完善功能, 包括IP数据报规定互连网络范围内的IP地址格式。
规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
范围:0.0.0.0-255.255.255.255
一个ip地址通常写成四段十进制数,例:172.16.10.1

ip地址分成两部分
网络部分:标识子网
主机部分:标识主机

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

子网掩码
所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.


为了便于寻址和层次化的构造网络,IP地址被分为A、B、C、D、E五类,
商业应用中只用到A、B、C三类。

* A类地址:A类地址的网络标识由第一组8位二进制数表示,
网络中的主机标识占3组8位二进制数,
A类地址的特点是网络标识的第一位二进制数取值必须为“0”。
不难算出,A类地址允许有126个网段,每个网络大约允许有1670万台主机,通常分配给拥有大量主机的网络(如主干网)。

* B类地址:B类地址的网络标识由前两组8位二进制数表示,
网络中的主机标识占两组8位二进制数,
B类地址的特点是网络标识的前两位二进制数取值必须为“10”。
B类地址允许有16384个网段,每个网络允许有65533台主机,适用于结点比较多的网络
(如区域网)。

* C类地址:C类地址的网络标识由前3组8位二进制数表示,
网络中主机标识占1组8位二进制数,
C类地址的特点是网络标识的前3位二进制数取值必须为“110”。
具有C类地址的网络允许有254台主机,适用于结点比较少的网络(如校园网)。

为了便于记忆,通常习惯采用4个十进制数来表示一个IP地址,
十进制数之间采用句点“.”予以分隔。
这种IP地址的表示方法也被称为点分十进制法。如以这种方式表示,

A类网络的IP地址范围为1.0.0.1-127.255.255.254;
B类网络的IP地址范围为:128.1.0.1-191.255.255.254;
C类网络的IP地址范围为:192.0.1.1-223.255.255.254。

172.16.10.23	
10101100.00010000.00001010.00010111	
11111111.11111111.11111111.00000000

子网划分

子网划分时通过借用ip地址的若干位主机位来充当子网地址的,从而将原来的网络分为若干个彼此隔离的子网实现的
#  注意:arp协议通过ip地址获取目标主机的mac地址这一过程使用的时广播的方式,这个广播地址就是通过子网地址与子网掩码计算而来的,只有计算出的这一子网内的主机才能收到这个arp广播包
#  子网划分与clan都可以做到隔离广播域,知识子网划分时三层隔离,vlan时二层隔离

子网划分步骤:
1.确定要划分的子网数以及每个子网的主机数
2.求出子网数目对用的二进制的位数N及主机数目对应的二进制数的位数M
3.对该ip地址的元子网掩码,将其主机地址部分的前N位置1(其余位置0)或后M位置0(其余位置1)既得出该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
        
为什么要子网划分:
#  简单的说:一个公司不可能使用254个公网地址,A公司想用6个地址,B公司也想用6个地址,如果把这两个公司的地址都放在一个大网段里面,这两个公司的地址就能够直接互通  

子网划分优点:
1.减少网络流量
2.提高网络性能
3.简化管理
4.易于扩大地理范围

二层隔离与三层隔离

两台计算机接入不同的交换机,称之为二层隔离
子网地址不同,称之为三层隔离
结论:
	1、二层隔离与三层隔离要保持一致
	2、二层联通,三层可以隔离,即两台计算机接入了同一个交换机,不一定在一个局域网内

tcp与udp协议

tcp协议:
可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
udp协议:
不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
	
tcp可靠
udp不可靠
    
tcp三次握手和四次握手,建立双向链接

补充:

  • socket套接字

我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

socket是对传输层及其以下的封装,应用程序产生的数据包想要往外传输,直接传给socket就可以了,socket会完成后续的封装
  • DNS

    DNS的作用:
    DNS就是把域名和IP地址联系在一起的服务,有了DNS服务器,就不用输入IP地址来访问一个网站,可以通过输入网址访问。
    
    dns的两种查询方式:
    #一 :递归 主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
        第一步:在hosts静态文件、DNS解析器缓存中查找某主机的IP地址
        第二步:上一步无法找到,去DNS本地服务器(即域服务器)查找,其本质是去区域服务器、服务器缓存中查找
        第三步:本地DNS服务器查不到就向ISP(ISP是互联网服务提供商(Internet server provider))的简称,ISP有专门的DNS服务器对应DNS查询请求。再找不到就根据'根提示文件'向负责顶级域'.com'的DNS服务器查询
        第四步:'根DNS服务器'根据查询域名中的'xyz.com',再向xyz.com的区域服务器查询
        
    
    # 二:迭代 本地域名服务器向根域名服务器的查询的迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。
        第一步:在hosts静态文件、DNS解析器缓存中查找主机的IP地址
        第二步:上一次无法找到,在DNS本地服务器(即域服务器)查找所有本层次的区域服务器查询
        第三步:本地DNS服务器查不到就像ISP(互联网服务提供商)的简称,ISP有专门的DNS服务器应对DNS查询请求。再找不到就查询上一层次所有区域服务器,以此类推直至根域名DNS服务器。
        第四步:到达根域名服务器后又向下查询,直至查到结果为止。
        
    
  • 网络通信整体流程

    你的电脑想要联网,首先需要一个网卡,而且电脑要做好相关的网络配置。
    电脑插网线的地方叫做网卡,网卡提供了网络的接口,这是硬件上面的,那我们怎么找到网卡呢,有人说是IP地址,而是全球唯一的mac地址,专门给网络设备设定的,是出厂的时候就给定好的,一个设备的mac地址号是全球唯一的。head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址是指网卡的地址,即mac地址。
    
    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48为2进制,通常为12为16进制数表示(前六位是厂商编号,后六位是流水线号)
    
    查看mac的方法:windows下在cmd窗口输入ipconfig -all指令
    
    由于mac地址很难记忆,所以又出现了IP地址,在说IP地址之前我们先说一下编码,我们都知道一个字节等于8位对吧,8个二进制的数,那么是不是可以表示256个字节啊,由于全球有太多的机器需要互联网,那么网络设备的编号应该长一些对不对,有4个点分十进制组成,由点分割的四个十进制的数,二十进制的数是不是在计算机中也是由二进制表示的啊,那么就成了这个样子:00000000.00000000.00000000.00000000 -- 11111111.11111111.11111111.11111111,
    0.0.0.0--255.255.255.255,也即是由4个8位的二进制数表示买这个表示就是我们的IP地址的形式。
    
    如果你用网线连网的,查看自己网络的属性,并且可以将IPv4版本的ip地址可以设置成静态的,也可以自动获取(动态分配的)
    
    步骤:控制面板--》网络和Internet--》网络连接--》以太网属性--》Internet协议版本4(TCP、IPv4)
    
    (1)自动获得地址:一般情况下我们都是设置成自动获取ip地址,由公司的路由或者交换机自动给你分配一个局域网ip地址
    (2)自定义ip地址:可以自定义ip地址,但是要配置好和公司其他人一样的子网掩码,默认网关,dns服务器等,ip地址通过子网掩码计算,要和其他人在一个子网,具体怎么计算,回头会说的。
    
    配置好自己电脑的网络信息后,我们就有了身份证(mac地址)和名字(IP地址),通过他们,我们就在网络中有了自己的身份,只要有网络,我们就可以正大光明的和别人通信了。
    
    arp协议功能:广播的方式发送数据包,获取目标主机的mac地址。
    
    网络通信流程描述:
        第一步:打开浏览器,想要访问京东,在地址栏输入网址:www.jd.com。(www.jd.com是域名,也就是一个IP地址的名称,IP地址不好记,所以有了域名)
        第二步:先将请求信息发送给交换机,然后交给路由,路由发给DNS服务器,通过DNS协议去找我们要访问的京东的IP地址
        第三步:查到的京东服务器对应的IP地址之后,路由器通过路由协议找到一个路由转发的最优路径,将你的请求信息还送给这个IP地址的京东的路由器
        第四步:京东的路由器发给了京东网站上的服务器上
        第五步:京东网站服务器按照来的时候的路径,再返回给你他自己的网站
        第六步:当你打开浏览器的时候,你的电脑给你的浏览器这个原型起来的程序给了一个编号,叫做端口号,当你的点啊弄收到京东发送过来的消息的时候,你的电脑通过端口号找到你的浏览器,你的浏览器拿到了京东的网站信息,然后将网站呈现在了自己的浏览器上
       
    内网和外网:
        所谓的内网就是我们平常所说的局域网。局域网就是在固定的一个地理区域内由2台以上的电脑用网线和其他网络设备搭建而成的一个封闭的计算机组。它可以是另据之间的2台电脑,也可以是一幢100层大楼里的1000台电脑。局域网可以是独立封闭运行的,也可以是和外网连接的。
        所谓外网,就是广域网。是一种低于跨度非常大的网络集合。它是由无数个局域网+独立服务器构成的。(注意:磁珠说的局域网可以是小型的广域网,也可以是局域网)
       实际上,从规模上来看我们很难分辨局域网和广域网,因为大小都是相对的。所以真正的局域网与广域网的分别是通过IP地址来是是实现的。
        在任何一台电脑上,都必须在网络上有一个唯一的IP地址。在局域网内,这个IP地址是唯一的。但是在另一个局域网,这个IP地址仍然能够用。
        如果至于内网的IP地址是不能上网的,你上网肯定要通过一个外网地址,这个外网地址又称为公网地址,这个公网地址是全球唯一的,它在你的对外出口的路由器上,也就是你的外网网关地址。
    

重要小知识

1 arp协议的工作原理(分两种情况讨论,一种是局域网通信,另外一种是跨局域网通信)
工作方式:
首先通过ip地址和子网掩码区分出自己所处的子网
如果处于同一网络,通过arp获取网关的mac地址
这个包会以广播的方式在发送端所处的子网内传输,所有主机接收后拆开包,发现目标ip为自己的,就响应,返回自己的mac地址。

通信的第一步先拿到目标主机的ip地址
判断出目标主机与自己是否在一个子网里
# 如果在一个子网里,数据包的走向:   
 源主机---》本地交换机---》目标主机
# 如果不在一个子网里,数据包的走向:
 源主机---》本地交换机---》本地路由器---》公网---》目标路由器---》目标交换机---》目标主机


2 ip地址的两大作用是什么,如何标识出ip地址的网络位与主机位
一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。
网络部分:标识子网
主机部分:标识主机

3 什么是子网划分
子网划分是通过借用ip地址的若干位主机位来充当子网地址的从而将原来的网络分为若干个彼此隔离的子网实现的

子网划分优点:
减少网络流量
提高网络性能
简化管理
易于扩大地理范围


4 本地回环地址作用是什么?地址是什么,网关地址通常是什么?本网段广播地址是什么?全网广播地址是什么?私网地址有哪些?
作用:
测试本机的网络配置
能PING通127.0.0.1说明本机的IP协议安装没有问题。
地址:127.0.0.1
网关地址一般是192.168.0.1或者192.168.1.1这两种。


5 图解tcp三次握手与四次挥手,标注好状态


posted @ 2021-06-21 20:27  一博女孩  阅读(100)  评论(0)    收藏  举报