计算机网络
计算机网络
1、什么是网络
为了世界上所有的计算机连接在一起。
网络 = 物理连接介质 + 互联网通信协议 == == 》》全世界之间的计算机通信的一个标准== ==》》OSI七层协议 OSI七层协议(例子,中国语言是普通,广东人与客家人通话,大家要会普通话才听得懂,不然拉闸)
2,什么要有网络
为了方便数据的传输以及通信,
OSI七层协议:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
物理层(电信号/比特位)
A,B两台电脑通信,必须要有物理链接给建立好,物理层就是把数据转化为电信号/比特位置(010101010),发给B电脑,因为电脑只认识电信号,但是这时电信号根本没有意义,因为不知道从那一段到那一段,才为一组数据,所以需要数据链路层来处理
数据链路层(以太网卡,以太网协议以及数据帧)
每台电脑制造出来,都要根据以太网规则,刻上MAC地址(每台计算机独一无二的标识 / 12位16进制数)
以太网协议:规定电信号的标准 1、以太网的数据称之为数据帧,分为head+data两部分,其中head长度固定
2、规定但凡是接入互联网的主机必须有一块网卡,网卡上有一个mac地址,全世界唯一 3、以太网协议的通信采用的是广播的通信方式=》计算机通信靠吼 (例如我叫张三帮我买包子,我大声叫张三,就只有张三回应我)
ps:交换机有:mac地址学习功能, 例如A电脑要给B电脑通信/传输数据,首先由自己的数据转发为数据帧地址通过交换机,给现在在相同的局域网内所有正在连接的电脑发数据,假如有60台电脑同时在线,就给其余59台电脑发送数据,但只有B电脑的MAC地址才能接收信息以及回包,然后交换机就会把B电脑以及A电脑的MAC地址与当前计算机所在端口记录下来。
A,B两台电脑通信,必须要有物理链接给建立好,==物理层==就是把数据转化为电信号/比特位置(010101010),发给B电脑,因为电脑只认识电信号,但是这时电信号根本没有意义,因为不知道从那一段到那一段,才为一组数据,所以需要==数据链路层==来处理,根据以太网协议,一组电信号分别为两部分A:head B:data。head含有源MAC,目标MAC,以及数据类型,data代表你要发送的内容。但这只局限于局域网内通信,如果要实现跨局域网通信,就需要目标的IP地址,所以这时间就需要网络层来操作。
网络层(IP协议以及数据包)
跨局域网通信(IP协议:IPV4 IPV6) 拥有计算机IP地址 + MAC地址,就可以定位到全世界范围内唯一的一台计算机
IP协议 ①规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示 ②范围0.0.0.0-255.255.255.255 ③一个ip地址通常写成四段十进制数,例:172.16.10.1 获取目标计算机局域网需要: 目标IP地址以及子网掩码(子网掩码一般为255.255.255.0)如果没有子网掩码,拿到了他的IP,也确定不了他所在的局域网在那里。 ip地址的范围: 00000000.00000000.00000000.00000000 ->0.0.0.0 11111111.11111111.11111111.11111111 ->255.255.255.255
子网掩码:
11111111.11111111.11111111.00000000 ->255.255.255.0
========================================================================
例如ip地址1:172.16.10.4/24
10101100.00010000.00001010.00000100 -> 172.16.10.4
11111111.11111111.11111111.00000000 -> 255.255.255.0
10101100.00010000.00001010.00000000 -> 172.16.10.0 子网地址
========================================================================
例如ip地址2:172.16.10.5/24
10101100.00010000.00001010.00000101 -> 172.16.10.5
11111111.11111111.11111111.00000000 -> 255.255.255.0
10101100.00010000.00001010.00000000 -> 172.16.10.0 子网地址
得出“IP地址1”与“IP地址2”在同一个局域网内
ARP协议 arp协议= = = = = = = = =》》》获取目标mac地址如何获取?? (例子)A电脑;192.168.10.11/24 B电脑:192.168.10.13/24 :判断两台计算机的子网地址是否一样,如果一样,应该尝试获取计算机2的mac地址,通过子网掩码,得知A电脑与B电脑为同一个网段。 ①计算机1的mac地址 FF-FF-FF-FF-FF-FF 192.168.10.11/24 192.168.10.13/24 数据部分, ②同一局域网内所有计算机收到ARP包:碰到 FF-FF-FF-FF-FF-FF,大家知道对方想跟自己要mac地址,但是只有IP为192.168.10.13/24的B电脑会返回mac地址。 ARP协议:ARP协议是工作在网络层的协议,它负责将IP地址解析为MAC地址。
引入 1,A电脑要与B电脑通信,A电脑必须要拿到这B电脑的IP地址 2,通信分为两类:①局域网内 ②跨局域网 ①在同一局域网内,A电脑如何与B电脑通信? 判断双方在同一个局域网,通过arp协议,A电脑直接拿到这B电脑MAC地址。 ②跨局域网如何通信? 判断双方不在同一局域网,通过arp协议,A电脑拿到的MAC地址是网关的MAC地址,把数据发给网关,通过路由器发到公网,再转发到这B电脑的局域网内。
路由器协议 这时候传输的数据被称为数据包,数据包分为两个部分head以及data head:源IP地址,目标IP地址。
A电脑给B电脑发送数据,首先会经过交换机,在同一局域网有没有具体的MAC地址只有一串FF.FF.FF.FF.FF,这MAC地址只有网关可以识别,就会把数据发给路由器的MAC地址上,路由器拆包查看是否同在一个局域网,不在同一局域网然后由路由器连接公网的另一个IP地址去连接公网,续而连接到这B电脑的路由器,在由这B电脑的路由器,把连接外网的地址转化为此局域网的网关,此时arp 协议自动识别当前局域网的IP地址,转化为MAC地址。
ARP会将ip地址转换成mac地址(要么是局域网内一台计算机的mac地址,要么就是网关的mac地址,不能是公网计算机的mac地址)
传输层(数据段以及 端口数据协议== == == TCP协议与udp协议)
计算机之间的通信,本质上是软件上的通信(软件控制硬件),还要区分A电脑与B电脑之间应用程序之间的端口。在传输层的数据称为数据段. 数据段:放的内容为head+data. head:源端口 目标端口(端口在本机唯一即可)
A电脑与B电脑的网络是连在一起的,操作系统控制着A电脑与B电脑,各个应用软件在操作系统之间开个本机唯一的一个端口,A电脑上的应用程序顺着这代表A电脑应用程序在操作系统上打开的唯一端口通过网卡与这B电脑上的应用程序在操作系统上打开的唯一端口,连接后通讯。
应用层(http协议,ftp协议自己定义)
应用层的客户端与服务端都是是自己写的,自己可以自定义协议。 由应用程序产生数据。(数据的产生可以是因为变量,输入输出,或者接收了数据等)
应用程序产生数据,交给传输层,包上应用程序的源端口与目标端口,往网络层发,网络层包了一层源IP目标IP,在发给数据连路层,加上原MAC与目标MAC和数据类型,发给物理层,转为01010101,首先沿着网卡网线把数据送到交换机把010101汇成数据链层看看怎么发,交换机打开以太网协议的头,看到源MAC与目标MAC,(假如曾发过数据,交换机有MAC表,就把数据发过去了)
但是我们是不知道目标的MAC地址的,所以此时的目标MAC是FF.FF.FF.FF.FF,把源IP地址/掩码与目标IP/掩码发给交换机,让交换机帮忙看下同一局域网
①ARP协议:通过ip地址和子网掩码分析源IP与目标IP处于同一网络,数据返回交换机,这个数据会以广播的方式在L局域网内发送,所有主机接收后拆包,发现目标ip为自己的,就响应,返回自己的mac,收到对方mac后即可建立连接进行通信,就接收数据,此时的IP头对目标电脑已经没有用处,然后又到传输层,找到端口,从端口找到应用程序,顺着发送数据给应用程序,应用程序的的包一拆,应用程序就收到了数据
================================================
②ARP协议:通过ip地址和子网掩码分析源IP与目标IP不处于同一网络,广播把MAC地址表改为网关,网关是3层设备先打开数据链路层发现MAC是他,然后继续打开网络层,发现源IP为局域网内的IP,目标IP为外网的IP,可以打由网关接连到公网,现在封装的是路由协议,找到目标局域网。
TCP协议
TCP通信之前必须建立双向通路。双向通路是个虚拟存在的意思。
tcp与udp
tcp:因为在通信之前必须建立双向连接,通常都是客户端主动连接服务端的,所以必须先启动服务端,才能启动客户端 udp:不需要先启动服务端
socket
socket是对传输层包括传输层以下的封装
dhcp
ip地址 子网掩码 网关 dns服务所在机器的ip地址 静态配置 动态获取:dhcp
DNS:
域名解释:把域名解释为IP 递归域名解释:域名提交给本地DNS服务,慢(不推荐)。 迭代域名解释:问根/再问顶级/再问二级。 为了让域名解释快,有缓存优先:浏览器,操作系统,本地Hosts,本地DNS服务,递归或迭代。
1,什么是子网掩码?
用于标识网络号,查看两个IP是否同一网络位。子网掩码一般是255.255.255.0 没有子网掩码的ip地址是没有意义的,子网掩码转化位只能为连续的1连续的0
网络位与主机位:
网络位越少,在同一局域网中IP的数量越多:网络位越多,在同一局域网中,IP的数量就少。 A类地址;网络号只有前8位,首位必须为0 B类地址:网络号为16位,前两位必须为10 C类地址:网络号为24位,前两位必须为110 127这个网络号有特殊意义,127.0.0.1本地回环地址。 网络号最多有256个IP,但是只有254个能用其中0代表这个网络号,第255位代表广播地址,一般网关是1.
1,什么是子网划分?
借主机位给网络位使用,以此来达到把一个大网段划分为n个子网段的目的, 例如子网掩码为24位,C类网段所包含的IP地址属于同一个网络。
2,为何要进行子网划分