1.OSI
OSI (Open System Interconnect),即开放式系统互联是一个完整的、完善的宏观模型。
TCP/IP协议提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。更加侧重的是互联网通信核心。
名称 | 作用 | 常用协议 |
7应用层 | 为应用程序或用户请求提供各种请求服务。文件传输,电子邮件,文件服务 | HTTP、FTP、SMTP、POP3、TELNET、 NNTP、 |
6表示层 | 数据编码、格式转换、数据加密 | LPP、NBSSP |
5会话层 | 创建、管理和维护会话、建立或解除与其他接点的联系 | SSL、TIS、LDAP、DAP |
4传输层 | 提供端对端的接口,数据通信 | TCP、UDP |
3网络层 | 为数据包选择路由,IP地址及路由选择 | IP、ICMP、RIP、IGMP、OSPF |
2数据链路层 | 提供介质访问和链路管理 传输有地址的帧,错误检测功能 | 以太网、网卡、交换机、PPTP、L2TP、ARP、ATMP |
1物理层 | 管理通信设备和网络媒体之间的互联互通。以二进制数据形式在物理媒体上传输数据 | 物理线路、光纤、中继器、集线器、双绞线 |
2.物理层
物理层的作用就是通过物理手段把电脑连接起来,主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。
3.数据链路层
传输数据单元:帧 (Frame) 典型的设备:网桥,交换机
链路层在物理层的上方,确定了0和1的分组方式。
3.1以太网协议
一组电信号构成一个数据包,叫做帧(Frame);每一帧分成:标头(Head)和数据(Data)。
数据链路层链路层的数据包就叫“以太网数据包”, “标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等。
3.2 .MAC地址
以太网规定,连入网络的所有设备,都必须具有“网卡”接口。数据包必须是从一块网卡,传送到另一块网卡,网卡的地址,就是数据包的发送地址和接受地址,也叫MAC地址。
每块网卡都有全世界独一无二的MAC地址,有MAC地址,就可以定位网卡和数据包的路径了。
3.3广播
以太网采用广播的方式,向本网络(局域网)内所有计算机发送,让每台计算机自己判断,是否为接收方。计算机收到这个数据包,会读取的“标头”,找到其中接收方的MAC地址,然后与自身MAC地址进行比对,如果相同,说明是要发给自己的,否则丢弃。广播主要通过分组交换机或者网络交换机进行。
4. 网络层
广播是在发送者所在的局域网内广播的,互联网是由一个个子网组成的更大的子网。如何区分哪些MAC地址属于同一个子网。网络层引入一套新的地址, “网络地址”,也就是“IP地址”。
3.1IP协议
规定网络地址的协议,叫IP协议。定义的地址,就叫做“IP地址”。IP地址目前有IPV4和IPV6两版。又称“互联网通信协议第四/六版”。IPV4地址规定,网络地址由32个二进制位,分成四段十进制数表示,从0.0.0.0到255.255.255.255。
比如:172.16.254.1(网络部分前24位(172.16.254),主机部分后8位(最后的那个1)每一台计算机,都有一个IP地址。
3.2子网掩码
“子网掩码”(subnet mask)判断IP地址的网络部分。
"子网掩码",表示子网络特征的一个参数,也是一个32位二进制数字,它的网络部分为1,主机部分为0。比如,IP地址172.16.254.1,子网络掩码就是11111111.11111111.11111111.00000000,十进制就是255.255.255.0。
3.3路由/路由器/网关/交换机
路由(routing)
如果不是同一个子网中,则要采用“路由”的方式。路由就是通过互联的网络把信息从源地址传输到目的地址的活动。路由引导分组转送,经过一些中间的节点后,到它们最后的目的地。原地址和目标地址是在两个不同的子网中的。
路由器(Router)
实现路由功能的机器。路由器连接两个或多个网络并提供路由功能。
网卡是计算机的一个硬件,当计算机需要发送信息的时候,通过网卡发送。路由器(router)可以通俗理解为一台配备有多个网卡的专用电脑,它让网卡接入到不同的网络中。
网关(Gateway)
路由器的一种,把网络层使用的路由器称为网关,路由器可以在网络接口级或物理级路由;通常指的网关就是路由器的IP。
网络交换机(Network switch)
是一个扩大网络的器材,能为子网中提供更多的连接端口,以便连接更多的电脑。
LAN,全称Local Area Network,中文名叫做局域网;
WAN,全称Wide Area Network,中文名叫做广域网。WAN是一种跨越大的、地域性的计算机网络的集合。广域网包括大大小小子网,子网可以是局域网,也可以是小型的广域网;
WLAN,全称Wireless LAN, 无线局域网,通俗点讲就是WiFi。
家用的路由器,一般包括了交换机和路由器,WAN端口用于连接至Internet;LAN端口用于连接至局域网设备。
路由器有两个接口IP,也就是两个网卡,分别接入到两个不同的子网:
主机145.15生成发送到146.21的IP包。
1. 写好数据包的标头,如果在同一个子网中,只需要用自己在eth0上的网卡(MAC地址)通过交换机直接传送。
如果不在一个子网,应该送往145.17这个主机,通过广播MAC地址广播到对应的主机(路由器)。
2. 中间的router直接通过eth0和eth1上的网卡直接传送IP包。通过交换机广播发往主机146.21。
IP包从主机出发,在router间接力,IP包最终到达某个router,这个router与目标主机位于一个局域网中,可以广播通信。这样一个过程叫做routing。
3.4 ARP协议
IP地址与MAC地址的对应是通过ARP协议传播到局域网的每个主机和路由。每一台主机或路由中都有一个ARP cache,用以存储局域网内IP地址和MAC地址如何对应。
ARP包中包含有自己的IP地址和MAC地址。ARP协议只用于IPv4。IPv6使用Neighbor Discovery Protocol来替代ARP的功能。
5.传输层
4.1端口号
有了MAC地址和IP地址,可以在互联网上的任意两台电脑之间建立通信了。同一台主机上许多程序(进程)都需要用到网络,当一个数据包从网上发送过来的时候,我们需要一个参数来区分到底是提供哪个进程使用的——这个参数就叫做“端口号”,其实就是程序的编号。
端口是0到65535之间的一个整数,正好16个二进制。0~1023的端口被系统占用,用户只能使用大于1023的端口。不管是网页还是聊天,应用程序都会随机选用一个端口,然后与服务器简历相应的端口关系。HTTP协议默认使用80端口,8080是用来访问代理服务的。
“传输层”的功能,就是建立“端口到端口”之间的通信。 也就是程序与程序之间,“网络层”的功能是建立“主机到主机"的通信。只要确定主机和端口号,我们就能实现程序之间的交流。
4.2Socket
进程间通信分为两种——一种是主机内部(或终端内部)进程间通信,;另一种是跨主机进程间通信或者网络进程间通信,也叫“socket通信”。 socket本质是编程接口(API) 。
4.3UDP/TCP协议
UDP和TCP协议都是传输层的协议,他们的主要作用就是在应用层的数据包标头加上端口号。
UDP协议优点比较简单,容易实现,缺点可靠性较差,一旦数据包发出,无法知道对方是否收到。
TCP协议是有确认机制的UDP协议。每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道重发这个数据包。TCP协议主要的确认机制是"三次握手,四次挥手"。
6.应用层(三合一)
应用程序收到"传输层"的数据,数据五花八门, "应用层"的作用,就是规定应用程序的数据格式。
6.1用户的上网设置
买了一台新电脑,插上网线,填四个参数,计算机就能连上网了:
①本机的IP地址②子网掩码③网关的IP地址④DNS的IP地址