网络基础

复制代码
网络基础
一、计算机通信基础知识
1、一些名词的解释
网卡 :相当于我们的身份证,每张网卡都是全球唯一的。
交换机 :负责一个网络内的多台机器之间的信息交换。
网桥:是连接两个局域网的一种存储/转发设备,扩展局域网最常见的方法是使用网桥。 mac地址: 固化在网卡上的物理地址,每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号), 相当于计算机在网络上的身份证。 ip地址: 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,现在广泛使用的ipv4,它规定网络地址由32位2进制表示, 它的范围是0.
0.0.0-255.255.255.255 一个ip地址通常写成四段十进制数(点分十进制数),例:192.168.16.11 还有ipv6,,48位二进制表示。 局域网(LAN Local Area Network):指在某一区域内由多台计算机互联成的计算机组

城域网(MAK,Metropolitan Area Network):是在一个城市范围内所建立的计算机通信网,简称MAN,通过它将位于同一城市内不同地点的主机、数据库,以及LAN等互相联接起来


广域网(WAN,Wide Area Network):通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,
形成国际性的远程网络。它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。


网关ip:同一个局域网内所有的主机都是使用同一个网关IP对外访问的,它是不同局域网之间通信依赖的ip地址,也就是外网(公网)IP,最后一位一般是.1 网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。 例如,从192.
168.0.1到192.168.255.255这之间就是一个网段。 子网掩码:判断两个ip地址是否在同一个网段内 2、计算机之间的通信 早期:通过网线连接进行通信 发展:局域网(LAN,Local Area Network) 现在大部分局域网都是采用以太网的标准进行通信的 以太网它不是一种具体的网络,是一种技术规范。 该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法 arp协议(Address Resolution Protocol):即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。 交互机基于arp协议进行工作 交互机的三种通信方式:单播、广播、组播 在局域网内通过交换机进行通信




局域网内通过交换机和arp协议进行通信

通过网桥扩展局域网



3、局域网之间的通信:通过路由器、网关ip(外网ip)、子网掩码、网段进行通信 路由器: 路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由, 以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽,"交通警察"。目前路由器已经广泛应用于各行各业, 各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。 路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。 这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。 路由器又称网关设备是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。 当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择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地址:192.168.16.115 子网掩码:255.255.255.0 192.168.16.115转位二进制:11000000.10101000.00001011.10011011 子网掩码转为二进制:11111111.11111111.11111111.00000000 AND运算: 11000000.10101000.00001011.10011011 11111111.11111111.11111111.00000000 11000000.10101000.00001011.00000000 = 192.168.16.0 那么192.168.16.115所在的网段就是192.168.16.0 然后用同样的方法计算192.168.16.16的网段,也得出是192.168.16.0,网段相同就代表192.168.16.115和192.168.16.16是在同一个局域网, 同一个局域网内通信就不需要用路由器了,而如果不是在同一个局域网,那么就需要通过路由来通信。


不同局域网间的通信,需要通过路由器
4、一些特殊的ip地址 4-1、内网ip 外网(公网)ip:我们谁都能访问 内网(局域网)ip:从外部不能访问,只能在内部环境中互相访问,但是可以通过NAT协议转换进入外网访问。 为什么外网ip永远不会和内网ip冲突? 因为在0.0.0.0 - 255.255.255.255所有的ip地址中,默认为内网保留了一些字段: 192.168.0.0 - 192.168.255.255 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 上面这些都是内网的IP

4-2、不同局域网可用相同的ip
局域网内的IP为私有IP,一个局域网内的IP不可相同,但不同局域网内的IP没有限制。
局域网设备连接到公网时,会通过出口的路由器进行NAT协议转发,将局域网的私有IP转换为公网唯一IP,
同一局域网内的所有设备可能共享一个公网IP(通过不同的端口进行区分)。
所以,私有IP在公网上是看不到的,不同的局域网可以使用同一个私有IP,最终经过NAT协议转发后,会变为公网的IP地址(网关IP)。


扩展:
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),
但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。
这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。



4-3、回环地址:指的是在我们的测试过程中使用的一个地址 127.0.0.1是回环地址中的一个 4-4、0.0.0.0 当一台主机还没有被分配一个IP地址的时候,用于表示主机本身。(DHCP分配IP地址的时候) 用作默认路由,表示”任意IPV4主机”。 用来表示目标机器不可用。 用作服务端,表示本机上的任意IPV4地址。 二、tcp协议和udp协议:基于端口工作 1、端口:通过IP地址+端口号定位到某台主机的某个应用程序 计算机上的端口范围 0-65535,0-1024为系统端口 每一个网络服务都会占用计算机上的一个端口 在同一时刻 同一台计算机上 不同的网络应用 占用的端口一定是不同的
也就是通过IP地址和mac地址可以定位到某个局域网的某台机器,而端口是定位到这台机器的某个应用程序
2、TCP协议 当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。 在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。 这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。 tcp的三次握手: 简单来说: 我要和你通信,我就去问你:“我可以和你说话吗(第一次握手)”,你就回答说:“可以啊”,然后顺便问我:“那我可以和你通信吗(第二次握手[回答和问都是一次完成的])”, 我又回答:“可以啊(第三次握手)”,这样就建立起了我和你之间的连接。
TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK[1],并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接。[1] 
TCP三次握手的过程如下:
客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
专业点来说

 

tcp的四次挥手:
简单来说:
跟谈恋爱很相似,两个人谈恋爱,我不爱你了,我就跟你说:“我们分手吧(第一次挥手)”,我跟你说了分手后,你就表示知道了(第二次挥手),
但是此时,我是单方面跟你断开连接了,如果你还喜欢我,你还是可以给我发信息的,只是我并不会回复你,直到你也跟我说分手(第三次挥手),
我告诉你我知道了(第四次挥手),然后我们就彻底断开连接了。
建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。
(1) 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。
既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。
注意:
(1) “通常”是指,某些情况下,步骤1的FIN随数据一起发送,另外,步骤2和步骤3发送的分节都出自执行被动关闭那一端,有可能被合并成一个分节。
(2) 在步骤2与步骤3之间,从执行被动关闭一端到执行主动关闭一端流动数据是可能的,这称为“半关闭”(half-close)。
(3) 当一个Unix进程无论自愿地(调用exit或从main函数返回)还是非自愿地(收到一个终止本进程的信号)终止时,所有打开的描述符都被关闭,这也导致仍然打开的任何TCP连接上也发出一个FIN。
无论是客户还是服务器,任何一端都可以执行主动关闭。通常情况是,客户执行主动关闭,但是某些协议,例如,HTTP/1.0却由服务器执行主动关闭。
专业点来说

 

 

3、UDP协议
当应用程序希望通过UDP与一个应用程序通信时,传输数据之前源端和终端不建立连接,直接发送信息,
当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上



4、tcp与udp
tcp 面向连接的 可靠的 但是慢
    两个应用之间要想通信必须先建立连接
    然后基于连接来通信
    用于比较重要的文件邮件的发送 、下载安装包
udp 无连接的 不可靠 但是快
    能够发送的信息长度是有限的
    所以不能发送过长的数据
    用于即时通讯类的程序(例如QQ)

三、osi模型
1、互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层



2、每层运行常见的物理设备
传输层            四层路由器、四层交换机
网络层            路由器、三层交换机
数据链路层         网卡、以太网交换机、网桥
物理层            中继器、集线器、双绞线

注意:
二层交换机:就是我们说的正常的交换机,只能广播,单播,组播,只认识mac地址等功能的交换机
三层交换机:还能认识IP地址,发挥路由器功能的交换机
四层交换机、四层的路由器:能够直接基于端口通信的

3、每层运行常见的协议
应用层             http\https
传输层             tcp\udp协议
网络层             ipv4\ipv6
数据链路层          arp协议
物理层
复制代码

 

posted @ 2018-12-09 17:36  从入门到出师  阅读(1361)  评论(0编辑  收藏  举报