一、网络的基本概念

1.1、网络组成组件

一般来说,两台或以上计算机使用任意介质(电缆、光纤或无线电波)、任意网络(TCP/UDP、NetBEUI或IPX/SPX)来进行连接,并进行资源共享及通信,就可以称为计算机网络。网络协议是网络上建立通信及传输数据的双方必须遵守的通信标准,它定义了接收方和发送方进行通信所必须遵循的规则,双方同层的协议必须一致,否则无法进行通信或数据错误。为了组建通信网络,通常需要一些特殊的设备,下图是一个常见的网络连接图。

节点(node):节点主要是具有网络地址 (IP) 的设备之称。

服务器主机(server):提供数据以响应给用户的主机,都可以被称为是一部服务器。

工作站(workstation)或客户端(client):主动发起联机去要求数据的,就可以称为是客户(client)。

网卡(Network Interface Card,NIC):主要提供网络联机的设备

网络接口:主要在提供网络地址(IP) 的任务。主机内部也都拥有一个内部的网络接口,就是loopback这个循环测试接口!

网络形态或拓朴(topology):各个节点在网络上面的链接方式,一般讲的是物理连接方式。

路由(route):是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程,其工作在OSI参考模型第三层——网络层的数据包转发设备。

网关(gateway):又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。

  • OSI网络模型与TCP/IP网络模型

由ISO所定义的7层网络模型--OSI(Open System Interconnect,开放系统互连)是网络发展中的一个重要里程碑,它的出现使各种网络技术和设备有了参考依据,在网络协议的设计和统一上起到一定作用。

OSI的7层模型中每一层都有清晰的特征。其中第7-4层处理数据源和数据目的地之间的通信问题,第3-1层处理网络设备间的通信。各层功能为:


物理层:定义了有关传输介质的特性标准规范。

数据链路层:物理链路并不可靠,可能会出现错误。数据链路层将数据分成帧,以数据帧为最基本单位进行传输,通过收到的数据帧进行重新排序和整理,把不可靠的物理链路转化成网络模型的上层协议中可靠的数据链路。

网络层:对数据按一定的长度进行分组,并在每个分组的头中记录源和目的主机的地址,然后根据这些地址来决定从源主机到目的主机的路径。如果存在多条路径,还要负责进行路由选择。

传输层:这层的功能包括是选择差错恢复协议还是无差错恢复协议,在同一主机上对不同应用的数据流的输入进行复用,以及对所收到的顺序不对的数据包进行重新排序。

会话层:在网络实体间建立、管理和终止通信应用服务请求和响应会话等。

表示层:进行代码转换功能,以保证源主机的数据在目的主机上同样能被识别。

应用层:OSI模型的最高层,实现网络与用户的直接对话。

OSI的7层模型是一个理论模型,由于它太过庞大和复杂受到很多批评,而技术人员自己开发的TCP/IP协议栈则获得更为广泛的应用。与OSI的7层模型不同,TCP/IP模型没有把主要精力放在严格的层次划分上,而是侧重于设备间的数据传输。TCP/IP模型的各层功能:


网络接口层(链结层):定义了如何在已有的物理网络介质上传输数据,在这层中包含以太网、令牌环网、帧中继和异步传输模式等。

网络层:将数据封装成IP(Internet Protocol)数据包,发往目标网络或主机。在这层包含了IP、

ICMP、IGMP、以及ARP等协议。

传输层:定义了数据传输时所使用的服务质量以及连接状态,实现源端主机和目标主机上对等实体间的会话。在传输层上有两个不同的协议:TCP、UDP。

应用层:TCP/IP模型将OSI参考模型中的会话层和表示层的合并到应用层,它定义了TCP/IP应用程序通信协议,包括HTTP、FTP、DNS和SMTP等。其中,没中协议都对应不同的网络服务,他们一般都会有特殊的端口号。

1.2、TCP/IP的网络层相关数据包与数据

目前因特网环境的IP有两个版本,一种是使用最为广泛的IPv4,一种是预期未来会热门的IPv6.IPv4记录的地址由于仅有32位,预计在2012年前后会分配完毕,如此一来,新兴国家或者新的网络公司将没有网络可用。为了避免这个问题发生,因此产生了IPv6,IPv6地址可以达到128位,这样的IP数量几乎用不完。虽然IPv6具有前瞻性,但目前主流大多使用IPv4。

IP数据包的封装:

  TCP/IP协议定义了一个在因特网上传输的包,称为IP数据包,而IP数据报(IP Datagram)是个比较抽象的内容,是对数据包的结构进行分析。 由首部和数据两部分组成,其格式如图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址。

Version(版本):指IP协议的版本。

IHL(Internet Header Length, IP表头的长度):告知这个 IP 封包的表头长度。

Type of Service(服务类型),字段内容为PPPDTRUU。
  PPP:表示此 IP 封包的优先度,目前很少使用;
  D:若为0表示一般延迟(delay),若为1表示为低延迟;
  T:若为0表示为一般传输量 (throughput),若为1表示为高传输量;
  R:若为0表示为一般可靠度(reliability),若为1表示高可靠度。
  UU:保留尚未被使用。

Total Length(总长度):指这个IP封包的总容量,包括表头与内容(Data)部分,最大65535 bytes。

Identification(辨别码):IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并   将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报.

Flags(特殊旗标)
  D:若为 0 表示可以分段,若为 1 表示不可分段
  M:若为 0 表示此 IP 为最后分段,若为 1 表示非最后分段。

Fragment Offset(分段偏移):表示目前这个 IP 分段在原始的 IP 封包中所占的位置。

Time To Live(TTL, 存活时间)表示这个 IP 封包的存活时间,范围为 0-255。

Protocol Number(协定代码)


1


ICMP (Internet Control Message Protocol)


2


IGMP (Internet Group Management Protocol)


3


GGP (Gateway-to-Gateway Protocol)


4


IP (IP in IP encapsulation)


6


TCP (Transmission Control Protocol)


8


EGP (Exterior Gateway Protocol)


17


UDP (User Datagram Protocol)

Header Checksum(表头检查码):用来检查这个 IP 表头的错误检验之用。

Source Address:来源的 IP 地址

Destination Address:这里就是目标的 IP 地址。

Options (其他参数)这个是额外的功能,提供包括安全处理机制、路由纪录、时间戳、严格与宽松之来源路由等。

Padding(补齐项目):由于Options的内容不一定有多大,但是我们知道IP每个数据都必须要是32bits,所以,若 Options 的数据不足 32 bits 时,则由 padding 主动补齐。

IP地址的组成与分级:

  IP地址其实是一种网络数据包,而这种数据包的报头最重要的就是32位的来源与目的地址。对于这32 bits的数值,为了方便记忆,将32bits的IP分成四小段,每段含有8bits,将8个bits转换成十进制,并 且每一段中间以小数点隔开。

00000000.00000000.00000000.00000000    ==》  0.0.0.0
11111111.11111111.11111111.11111111    ==》  255.255.255.255

因此IP可以由0.0.0.0到255.255.255.255.但这遗传数字中,又分为网络段(Net_ID)与主机段(Host_ID)两部分。例如C类地址192.168.0.0-192.168.0.255为例。

11000000.10101000.000000000.00000000
|--------Net_ID------------|--host--|

Net_ID 与 Host_ID 的限制:在同一个网段内,Net_ID 是不变的,而Host_ID则是不可重复,此外 Host_ID 在二进制的表示法当中,不可同时为 0 也不可同时为 1 ,因为全为 0 表示整个网段的地址,而全为 1 则表示为广播的地址。

在局域网内通过IP 广播传递数据:在同物理网段的主机如果设定相同的网域 IP 范围 (不可重复),则这些主机都可以透过 CSMA/CD 的功能直接在区网内用广播进行网络的联机,亦即可以直接网卡对网卡传递数据 (透过 MAC 讯框)。

设定不同区网在同物理网段的情况:在同一个物理网段之内,如果两部主机设定成不同的 IP 网段, 则由于广播地址的不同,导致无法透过广播的方式来进行联机。 此时得要透过路由器 (router) 来进行沟通才能将两个网域连结在一起。

网域的大小:当 Host_ID 所占用的位越大,亦即 Host_ID 数量越多时,表示同一个网域内可用以设 定主机的 IP 数量越多。

网络的划分:


全0:网络地址

全1:广播地址

Class A : 0.xx.xx.xx ~ 127.xx.xx.xx     #Net_ID的开头是0

网络数:126, 127

每个网络中的主机数:2^24-2

默认子网掩码:255.0.0.0

私网地址:10.0.0.0/8

Class B : 128.xx.xx.xx ~ 191.xx.xx.xx   #Net_ID的开头是10

网络数:2^14

每个网络中的主机数:2^16-2

默认子网掩码:255.255.0.0

私网地址:172.16.0.0/16-172.31.0.0/16

Class C : 192.xx.xx.xx ~ 223.xx.xx.xx   #Net_ID的开头是110

网络数:2^21

每个网络中的主机数:2^8-2

默认子网掩码:255.255.255.0

私网地址:192.168.0.0/24-192.168.255.0/24

Class D : 224.xx.xx.xx ~ 239.xx.xx.xx    #Net_ID的开头是1110

组播的特殊功用,如大批计算机的网络还原

Class E : 240.xx.xx.xx ~ 255.xx.xx.xx    #Net_ID的开头是1111

保留没有使用的网段

1.3、交换机与路由器

在同一局域网里面,可以通过IP广播的方式来实现数据的传输,但如果在非局域网时。就需要路由器器来帮忙了。简单来说交换机为同一局域网内的不同主机服务,而路由器则为了不同局域网内的两台主机提供服务。

交换机:是基于网桥技术的多端口第二层网络设备,它为数据帧从一个端口到另一个任意端口的转发提供了低时延、低开销的通路。交换机只能识别MAC地址。同一网络内不同主机之间通信,通过交换机寻找最优通路,不能存在环路。

路由器:是OSI协议模型的网络层中的分组交换设备(或网络层中继设备),路由器的基本功能是把数据(IP报文)传送到正确的网络。识别IP地址。不同网段主机通信时需要路由转发。可以隔离广播域。

1.4、TCP协议数据包

网络层的IP数据包只负责将数据送到正确的目标主机,但是数据包到底会不会被接收,或者有没有被正确接收,就不是IP的任务了,那是传输层的的任务之一。在传输层有两种协议,一种是面向连接的TCP数据包,一种无连接的UDP数据包,数据能不能正确被送达目的地,与这两个数据包有很大的关系。

各个数据包之间的相关性:

UDP数据包的报头信息:

TCP数据包的报头信息:

Sequence Number (封包序号):TCP 数据太大时(大于 IP 封包的容许程度),就得要进行分段。这个   Sequence Number 就是记录每个封包的序号,可以让收受端重新将 TCP 的数据组合起来。

Acknowledge Number (回应序号):为了确认主机端确实有收到client端所送出的封包数据,client端当然希望能够收到主机方面的响应,那就是这个 Acknowledge Number 的用途了。当client 端收到这个确认码时,就能够确定之前传递的封包已经被正确的收下了。

Code (Control Flag, 控制标志码)

URG(Urgent):若为 1 则代表该封包为紧急封包,接收端应该要紧急处理,当中的 Urgent Pointer字段也会被启用。

ACK(Acknowledge):若为 1 代表这个封包为响应封包,与 Acknowledge Number 有关。

PSH(Push function):若为 1 时,代表要求对方立即传送缓冲区内的其他对应封包,而无须等待缓冲区满了才送。

RST(Reset):如果 RST 为 1 的时候,表示联机会被马上结束,而无需等待终止确认手续。 这是个强制结束的联机,且发送端已断线。

SYN(Synchronous):若为 1,表示发送端希望双方建立同步处理,也就是要求建立联机。通常带有SYN标志的封包表示主动要连接到对方的意思。

FIN(Finish):若为 1 ,表示传送结束,所以通知对方数据传毕,是否同意断线,只是发送者还在等待对方的响应。

三次握手与四次断开:

建立连接的过程:

【1】客户端发出请求,SYN 位表示连接请求。序号是200,这个序号在网络通讯中用作临时的地址,每发一个数据字节,这个序号要加1,这样在接收端可以根据序号排出数据包的正确顺序,也可以发现丢包的情况,另外,规定SYN 位和FIN 位也要占一个序号,这次虽然没发数据,但是由于发了SYN 位,因此下次再发送应该用序号201。

【2】服务器发出信息,也带有SYN 位,同时置ACK 位表示确认,确认序号是500,表示“我接收到序号500及其以前所有的段,请你下次发送序号为501的段”,也就是应答了客户端的连接请求,同时也给客户端发出一个连接请求。

【3】客户端发出信息,对服务器的连接请求进行应答,确认序号是501。在这个过程中,客户端和服务器分别给对方发了连接请求,也应答了对方的连接请求,其中服务器的请求和应答在一个段中发出,因此一共有三个段用于建立连接,称为‘‘‘三方握手(three-way-handshake)‘‘‘。在建立连接的同时,双方协商了一些信息,例如双方发送序号的初始值、最大段尺寸等。

TCP连接的关闭过程:

【1】客户端发出信息,FIN 位表示关闭连接的请求。

【2】服务器发出信息,应答客户端的关闭连接请求。

【3】服务器发出信息,其中也包含FIN 位,向客户端发送关闭连接请求。

【4】客户端发出信息,应答服务器的关闭连接请求。

时间: 2024-07-30 19:57:12

一、网络的基本概念的相关文章

C#网络编程(基本概念和操作) - Part.1

引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍. 本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议.套接字.聊天程序的三种开发模式,以及两个基本操作:侦听端口.连接远程服务端:第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打印字符串,将字符串改为大写,然后再将字符串回发到客

图解网络虚拟化之概念篇

简单说就是把网络层的一些功能从硬件中剥离出来,新建立所谓的网络虚拟层.如果和服务器虚拟化对比来看,会帮助我们理解这个概念. 标签:虚拟化 VMware 认证 云计算 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://frankfan.blog.51cto.com/6402282/1170930 作者:范军 (Frank Fan) 新浪微博:@frankfan7 如果要实现软件定义数据中心的愿景,网络虚拟化将会是旅程中的最后一公里

[转]C#网络编程(基本概念和操作) - Part.1

本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part1.aspx 引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍. 本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议.套接字.聊天程序的三种开发模式,以及

C#网络编程(基本概念和操作)

C#网络编程(基本概念和操作) - Part.1 引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍. 本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议.套接字.聊天程序的三种开发模式,以及两个基本操作:侦听端口.连接远程服务端:第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打

Java 网络编程----基本概念

网络现在是一个非常普遍的概念. 以下是维基百科上的解释: 网络一词有多种意义,可解作: 网络流也简称为网络(network).一般用于管道系统.交通系统.通讯系统建模. 有时特指计算机网络. 或特指其中的互联网. 或指互联网中的万维网. java网络编程关系的是以IP地址为基础的编程. IP,TCP,UDP IP是Internet Protocol的缩写,也就是网络间互联的协议. IP的设计相较于其他的类似协议有一些优点. 首先,IP最初是用于开发军事网络的,所以必须保证协议的健壮. 所以IP之

网络的基本概念TCP, UDP, 单播(Unicast), 多播(多播)(Multicast)

章相当低级,但相当重要! 我们周围一切差点儿都依赖于把事情抽象成低等级,并在某一点把它详细化,在一些设计概念中.接口层十分清晰而且目标非常集中,应用程序不用考虑操作系统怎样工作,操作系统也不用考虑硬件怎样工作,OSI模型的第4层不须要考虑第三层怎样工作.所以我们仅仅须要集中精力在某一层,就当以下的层正常工作,但这样能行吗?假设你写一个应用,你最好知道OS是怎么样工作的.而且要考虑数据库怎样存储字符的,相同.一个好的操作系统必须要了解硬件是怎样工作的.假设你觉得TCP不须要考虑IP的实现那就搞错了

java网络---基本web概念

首先需要搞清楚web中的3个关键概念. 一.HTTP,HTML,URL. HTML 全称是Hypertext Markup Language,是用来描述一个网页的语言.或者说,该语言是用来描述网页的“长相”. 至于具体显示出来是什么样子,是由浏览器来决定的. 也就是说HTML是确定,例如:“这是一个标题”,“这里需要强调”等. HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字.图形.动画.声音.表格.链接等.HTML的结构包括头部(Head).主体(Body)两大部分,其中

Linux初学之——网络的基本概念

网络的基础知识: 网络的概念 网络是由节点和连线构成,表示诸多对象及其相互联系.在数学上,网络是一种图,一般认为专指加权图.网络            除了数学定义外,还有具体的物理含义,即网络是从某种相同类型的实际问题中抽象出来的模型.在计算机域                中,网络是信息传输.接收.共享的虚拟平台,通过它把各个点.面.体的信息联系到一起,从而实现这些资源            的共享.网络是人类发展史来最重要的发明,提高了科技和人类社会的发展. 网络的功能: 数据通信 资源

OpenStack 网络总结之:openstack中网络的基本概念

原文:openstack-install-guide-yum-icehouse.pdf/7. Add a networking service/Networking concepts OpenStack的Neutron可以管理OpenStack环境中的虚拟 网络基础设施(VNI),和物理网络基础设施(PNI). OpenStack的Neutron允许租户创建虚拟网络拓扑结构,包含的服务例如防火墙,负载均衡和虚拟专用网络(VPN)等等. Neutron提供了对以下对象的抽象:网络,子网和路由器.

一篇文章带你了解网络爬虫的概念及其工作原理

众所周知,随着计算机.互联网.物联网.云计算等网络技术的风起云涌,网络上的信息呈爆炸式增长.毋庸置疑,互联网上的信息几乎囊括了社会.文化.政治.经济.娱乐等所有话题.使用传统数据收集机制(如问卷调查法.访谈法)进行捕获和采集数据,往往会受经费和地域范围所限,而且还会因其样本容量小.信度低等因素导致收集的数据往往与客观事实有所偏颇,有着较大的局限性. 网络爬虫通过统一资源定位符URL (Uniform ResourceLocator)来查找目标网页,将用户所关注的数据内容直接返回给用户,并不需要用