服务器 - 客户机,即 Client - Server(C/S)结构。
B/S 结构,即(Browser/Server,浏览器/服务器模式)
网卡是一块计算机硬件,又称为网络适配器或网络接口卡NIC。其拥有 MAC 地址,属于 OSI 模型的第 2 层,它使得用户可以通过电缆或无线相互连接。
每一个网卡都有一个被称为 MAC 地址的独一无二的 48 位串行号。
网卡的主要功能:1.数据的封装与解封装、2.链路管理、3.数据编码与译码。
MAC 地址(Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址、以太网地址、物理地址或硬件地址,它是一个用来确认网络设备位置的位址,由网络设备制造商生产时烧录在网卡中。在 OSI 模型中,第三层网络层负责 IP 地址,第二层数据链路层则负责 MAC地址 。MAC 地址用于在网络中唯一标识一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的 MAC 地址。
MAC 地址的长度为 48 位(6个字节),通常表示为 12 个 16 进制数,如:00-16-EA-AE-3C-40 就是一个MAC 地址,其中前 3 个字节,16 进制数 00-16-EA 代表网络硬件制造商的编号,它由 IEEE(电气与电子工程师协会)分配,而后 3 个字节,16进制数 AE-3C-40 代表该制造商所制造的某个网络产品(如网卡)的系列号。只要不更改自己的 MAC 地址,MAC 地址在世界是唯一的。
形象地说,MAC 地址就如同身份证上的身份证号码,具有唯一性。
IP 协议是为计算机网络相互连接进行通信而设计的协议。
IP 地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。IP 地址是 IP
协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以
此来屏蔽物理地址的差异。
IP 地址是一个 32 位的二进制数,通常被分割为 4 个“ 8 位二进制数”(也就是 4 个字节)。IP 地址
通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是 0~255 之间的十进制整数。
例:点分十进IP地址(100.4.5.6),实际上是 32 位二进制数
(01100100.00000100.00000101.00000110)。
nternet 委员会定义了 5 种 IP 地址类型以适合不同容量的网络,即 A 类~ E 类。
其中 A、B、C 3类(如下表格)由 InternetNIC 在全球范围内统一分配,D、E 类为特殊地址。
类别 | 最大网络数 | IP地址 | 单个网段最大主机数 | 私有IP地址范围 |
---|---|---|---|---|
A | 126 ( 2 7 − 2 ) 126(2^7-2) 126(27−2) | 1.0.0.1-126.255.255.254 | 16777214 | 10.0.0.0-10.255.255.255 |
B | 16384 16384 16384 ( 2 (2 (2 ^ 14 ) 14) 14) | 128.0.0.1-191.255.255.254 | 65534 | 172.16.0.0-172.31.255.255 |
C | 2097152 2097152 2097152 ( 2 (2 (2 ^ 21 21 21) | 192.0.0.1-223.255.255.254 | 254 | 192.168.0.0-192.168.255.255 |
一个 A 类 IP 地址是指, 在 IP 地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。
A 类 IP 地址 地址范围 1.0.0.1 - 126.255.255.254(二进制表示为:00000001 00000000 00000000 00000001 - 01111111 11111111 11111111 11111110)。最后一个是广播地址。
A 类 IP 地址的子网掩码为 255.0.0.0,每个网络支持的最大主机数为 256 的 3 次方 - 2 = 16777214 台。(为什么要-2? 答:减去第一个.0 ,和, 最后一个.255)
一个 B 类 IP 地址是指,在 IP 地址的四段号码中,前两段号码为网络号码。
B 类 IP 地址地址范围 128.0.0.1 - 191.255.255.254 (二进制表示为:10000000 00000000 00000000 00000001 - 10111111 11111111 11111111 11111110)。 最后一个是广播地址。
B 类 IP 地址的子网掩码为 255.255.0.0,每个网络支持的最大主机数为 256 的 2 次方 - 2 = 65534 台。
一个 C 类 IP 地址是指,在 IP 地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。
C 类 IP 地址范围 192.0.0.1-223.255.255.254 (二进制表示为: 11000000 00000000 00000000 00000001 - 11011111 11111111 11111111 11111110)。
C类IP地址的子网掩码为 255.255.255.0,每个网络支持的最大主机数为 256 - 2 = 254 台。
D 类 IP 地址在历史上被叫做多播地址(multicast address),即组播地址。在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。
多播地址的最高位必须是 “1110”,范围从224.0.0.0 -239.255.255.255。
每一个字节都为 0 的地址( “0.0.0.0” )对应于当前主机;
IP 地址中的每一个字节都为 1 的 IP 地址( “255.255.255.255” )是当前子网的广播地址;
IP 地址中凡是以 “11110” 开头的 E 类 IP 地址都保留用于将来和实验使用。
IP地址中不能以十进制 “127” 作为开头,该类地址中数字 127.0.0.1 到 127.255.255.255 用于回路测试,如:127.0.0.1可以代表本机IP地址。
子网掩码是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网,
以及哪些位标识的是主机的位掩码。
子网掩码不能单独存在,它必须结合 IP 地址一起使用。子网掩码只有一个作用,就是将某个 IP 地址划分成网络地址和主机地址两部分。
子网掩码是一个 32 位地址,用于屏蔽 IP 地址的一部分以区别网络标识和主机标识,并说明该 IP 地址是在局域网上,还是在广域网上。
子网掩码是在 IPv4 地址资源紧缺的背景下为了解决 lP 地址分配而产生的虚拟 lP 技术,通过子网掩码将 A、B、C 三类地址划分为若干子网,从而显著提高了 IP 地址的分配效率,有效解决了 IP 地址资源紧张的局面。
eg :
ip地址:192.168.193.128
子网掩码:255.255.255.0
网络id:ip地址&子网掩码=192.168.193.0
主机id:ip地址&(~子网掩码)=0.0.0.128
“端口” 可以认为是设备与外界通讯交流的出口。
端口可分为虚拟端口和物理端口:
其中虚拟端口指计算机内部或交换机路由器内的端口,不可见,是特指TCP/IP协议中的端口,是逻辑意义上的端口。例如计算机中的 80 端口、21 端口、23 端口等;
物理端口又称为接口,是可见端口,计算机背板的 RJ45 网口,交换机路由器集线器等 RJ45 端口。电话使用 RJ11 插口也属于物理端口的范畴。
如果把 IP 地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是一个 IP 地址的端口可以有 65536(即:2 ^ 16 )个.
端口是通过端口号来标记的,端口号只有整数,范围是从 0 到65535(2^16-1)。
物理层:它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
数据链路层:MAC地址的使用在这一层。
网络层:进行逻辑地址寻址,在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。
传输层:定义了一些传输数据的协议和端口号( WWW 端口 80 等).
会话层:通过传输层建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求。
表示层:数据的表示、安全、压缩。主要是进行对接收的数据进行解释、加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够能识别的东西(如图片、声音等)。
应用层:这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。
应用层:应用层是 TCP/IP 协议的第一层,是直接为应用进程提供服务的。
传输层:作为 TCP/IP 协议的第二层,运输层在整个 TCP/IP 协议中起到了中流砥柱的作用。
网络层:网络层在 TCP/IP 协议中的位于第三层。在 TCP/IP 协议中网络层可以进行网络连接的建立和终止以及 IP 地址的寻找等功能。
网络接口层:在 TCP/IP 协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。
协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。
应用层常见的协议有:FTP协议(File Transfer Protocol 文件传输协议)、HTTP协议(Hyper Text Transfer Protocol 超文本传输协议)、NFS(Network File System 网络文件系统)。
传输层常见协议有:TCP协议(Transmission Control Protocol 传输控制协议)、UDP协议(User Datagram Protocol 用户数据报协议)。
网络层常见协议有:IP 协议(Internet Protocol 因特网互联协议)、ICMP 协议(Internet Control Message Protocol 因特网控制报文协议)、IGMP 协议(Internet Group Management Protocol 因特网组管理协议)。
网络接口层常见协议有:ARP协议(Address Resolution Protocol 地址解析协议)、RARP协议(Reverse Address Resolution Protocol 反向地址解析协议)。
源端口号:发送方端口号
目的端口号:接收方端口号
序列号:本报文段的数据的第一个字节的序号
确认序号:期望收到对方下一个报文段的第一个数据字节的序号
首部长度(数据偏移):TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远,即首部长度。单位:32位,即以 4 字节为计算单位
保留:占 6 位,保留为今后使用,目前应置为 0
紧急 URG :此位置 1 ,表明紧急指针字段有效,它告诉系统此报文段中有紧急数据,应尽快传送
确认 ACK:仅当 ACK=1 时确认号字段才有效,TCP 规定,在连接建立后所有传达的报文段都必须把 ACK 置1
推送 PSH:当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下,TCP 就可以使用推送(push)操作,这时,发送方 TCP 把 PSH 置 1,并立即创建一个报文段发送出去,接收方收到 PSH = 1 的报文段,就尽快地(即“推送”向前)交付给接收应用进程,而不再等到整个缓存都填满后再向上交付
复位 RST:用于复位相应的 TCP 连接
同步 SYN:仅在三次握手建立 TCP 连接时有效。当 SYN = 1 而 ACK = 0 时,表明这是一个连接请求报文段,对方若同意建立连接,则应在相应的报文段中使用 SYN = 1 和 ACK = 1。因此,SYN 置 1 就表示这是一个连接请求或连接接受报文
终止 FIN:用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放运输连接
窗口:指发送本报文段的一方的接收窗口(而不是自己的发送窗口)
校验和:校验和字段检验的范围包括首部和数据两部分,在计算校验和时需要加上 12 字节的伪头部
紧急指针:仅在 URG = 1 时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就是普通数据),即指出了紧急数据的末尾在报文中的位置,注意:即使窗口为零时也可发送紧急数据
选项:长度可变,最长可达 40 字节,当没有使用选项时,TCP 首部长度是 20 字节
源端口号:发送方端口号
目的端口号:接收方端口号
长度:UDP用户数据报的长度,最小值是8(仅有首部)
校验和:检测UDP用户数据报在传输中是否有错,有错就丢弃
版本:IP 协议的版本。通信双方使用过的 IP 协议的版本必须一致,目前最广泛使用的 IP 协议版本号为 4(即IPv4)
首部长度:单位是 32 位(4 字节)
服务类型:一般不适用,取值为 0
总长度:指首部加上数据的总长度,单位为字节
标识(identification):IP 软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段
标志(flag):目前只有两位有意义。
标志字段中的最低位记为 MF。MF = 1 即表示后面“还有分片”的数据报。MF = 0 表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为 DF,意思是“不能分片”,只有当 DF = 0 时才允许分片
片偏移:指出较长的分组在分片后,某片在源分组中的相对位置,也就是说,相对于用户数据段的起点,该片从何处开始。片偏移以 8 字节为偏移单位。
生存时间:TTL,表明是数据报在网络中的寿命,即为“跳数限制”,由发出数据报的源点设置这个字段。路由器在转发数据之前就把 TTL 值减一,当 TTL 值减为零时,就丢弃这个数据报。
协议:指出此数据报携带的数据时使用何种协议,以便使目的主机的 IP 层知道应将数据部分上交给哪个处理过程,常用的 ICMP(1),IGMP(2),TCP(6),UDP(17),IPv6(41)
首部校验和:只校验数据报的首部,不包括数据部分。
源地址:发送方 IP 地址
目的地址:接收方 IP 地址
类型:0x800表示 IP、0x806表示 ARP、0x835表示 RARP
上层协议是如何使用下层协议提供的服务的呢?其实这是通过封装(encapsulation)实现的。
应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息(有时还包括尾部信息),以实现该层的功能,这个过程就称为封装。
在计算机网络中,分用(demultiplexing)是指接收方通过识别和处理传输层协议的源端口号和目标端口号,将到达的数据帧交付给相应的应用程序。这个过程一般发生在操作系统的协议栈中,自底向上依次经过各个层次的协议。
具体来说,当一个数据帧到达目的主机后,网络接口层会读取帧头信息判断是否是自己的MAC地址,然后去掉帧头封装,得到IP数据报。接下来,网络层根据IP数据报的目的IP地址判断是否是自己的地址,如果是则继续向上传递,否则就丢弃该数据报。再上一层是传输层,传输层通过源端口号和目标端口号来区分不同的应用程序,并将数据交付给相应的应用程序。
总之,分用是一个重要的网络处理过程,它能够帮助接收方正确地将到达的数据帧交付给相应的应用程序,实现了多个应用程序共享同一个网络连接的功能。