1、网络:
将不同区域的电脑连接在一起,组成局域网、城域网、广域网,把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的网络系统,从而使众多的计算机可以方便的互相传递信息,共享硬件、软件、数据信息等资源。
功能:
2、通讯协议:
计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、传输控制步骤、差错控制等制定标准;
3、通信接口
为了使两个结点之间能够进行对话,必须在它们之间建立通讯工具(接口),使彼此之间能进行信息交换,接口包括两部分:
4、网络分层:
由于结点之间练习很复杂,在制定协议时,把复杂成分分解成一些简单的部分,再将它们复合起来,最常用的复合方式是层次方式,即同层之间可以通信、上一层可以调用下一层,而与再下一层不发生关系
5、计算机网络:是通过传输介质、通信设施和通信协议,将分散在不同点的计算机设备互连起来,实现资源共享和数据传输的系统;
6、网络编程:就是彼岸写程序使联网的两个或多个设备进行传输;
国际标准组织提出网络开放互联模型OSI(Open System InterConnection),将网络划分为7层,OSI是一个参考模型,而TCP/IP协议是事实上的标准;
简单来说,每一层的功能如下:
应用层 | 直接向用户提供服务,完成用户希望在网络上完成的各种工作 |
---|---|
表示层 | 对应用层的数据进行封装、校验、加密等操作 |
会话层 | 对通信的开始、结束、异常、中断进行处理 |
传输层 | 保持通信双方端对端的联系(端口) |
网络层 | 查找通信双方主机与主机的联系(IP) |
数据链路层 | 在于保证网络中相邻节点的可靠性通信、物理地址(MAC地址)(arp,rarp) |
物理层 | 数据在介质中以比特流的形式在通信介质上传输 |
OSI是一个参考模型,而TCP/IP协议是事实上的标准,TCP/IP协议是一个协议簇,参考了OSI模型,但是并没有严格按照OSI规定的七层标准去划分,而是只划分了四层:应用层,传输层,互连网络层,网络接口层(物理+数据链路层)这样更简单一点,当划分层次太多时,很难区分某个协议是属于哪个层的;
TCP/IP模型的简单介绍:
1. 应用层:
负责处理特定的应用程序细节,几乎各种不同的TCP/IP都会提供这些通用的应用程序:
2. 传输层:
主要为两台主机上的应用程序提供端到端的通信,TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面,U D P则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端,任何必须的可靠性必须由应用层来提供。
3. 网络层:
有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。
IP(IPV4/IPV6)(Internet Protocol)网络互联协议;
ARP(Address Resolution Protocol)地址解析协议,实现通过IP地址得到物理地址;
RARP(Reverse Address Resolution Protocol)逆地址解析协议,实现通过物理地址得到IP地址;
ICMP(Internet Control Message Protocol)网络控制报文协议,是TCP/IP协议族的一个子协议,用于在ip主机,路由器之间传递控制消息;
(数据链路层 数据单元:帧)
4. 网络接口层:
有时也称作数据链路层或链路层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与传输媒介的物理接口细节;
假设在一个局域网中有两台主机,两者都运行FTP协议,那么这个过程中会涉及到的协议如下:
下图是TCP/IP模型与OSI参考模型的比较以及各层的部分协议:
互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址)。用来标识网络中的一个通信实体的地址,通信实体可以是计算机、路由器等。比如互联网的每个服务器都要有自己的IP地址,而每个局域网的计算机要通信也要配置IP地址,路由器是连接两个或多个网络的网络设备;
1)IP地址分类:
32位的IP地址,Internet地址并不采用平面形式的地址空间,如 1、2、3等。IP地址具有一定的结构,五类不同的互联网地址格式如图:
而区分各类地址最简单的方法就是看它第一个十进制整数:
类型 | 范围 |
---|---|
A | 0.0.0.0 ~ 127.255.255.255 |
B | 128.0.0.0 ~ 191.255.255.255 |
C | 192.0.0.0 ~ 223.255.255.255 |
D | 224.0.0.0 ~ 239.255.255.255 |
E | 240.0.0.0 ~ 247.255.255.255 |
2)特殊的IP:
- 本机地址127.0.0.1;
- 192.168.0.0 ----- 192.168.255.255是私有地址,属于非注册地址,专门为组织机构内部使用;
1. 数据封装 Data Encapsulation
当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如下图;
图中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度,以太网数据帧的物理特性是其长度必须在 46~1500字节之间。
UDP数据与TCP数据基本一致。唯一的不同是 UDP传给IP的信息单元称作 UDP数据报(UDP datagram),而且UDP的首部长为8字节。
许多应用程序都可以使用 TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符。 TCP和UDP都用一个16 bit的端口号来表示不同的应用程序。
TCP和UDP把源端口号和目的端口号分别存入报文首部中。
2. 数据拆封 Data Dismantling
是指将接收到的数据进行拆包,每一层只把对该层有意义的数据拿走,或者说每一层只能处理发送方同等层的数据,然后把其余的部分传递给上一层,这就是对等层通信的概念。
接收方数据处理的方式是从底层到高层,逐层进行数据解封装。
IP地址用来标识一台计算机,但是一台计算机上可能提供多种网络应用程序,端口是虚拟的概念,并不是说在主机上真的有若干个端口,通过端口,可以在一个主机上运行多个网络应用程序,端口的表示是一个16进制的二进制整数,2个字节,对应十进制的0-65535,TCP和UDP也采用16bit的端口号来识别应用和程序;
分类:
相关命令:
客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端口号又称作临时端口号(即存在时间很短暂)。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着的,其服务就运行。
socket(IP+端口号)
TCP和UDP都属于传输层协议,在应用层和传输层之间,则是使用套接字来进行分离,套接字就像是传输层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数据,而这个小口内,也就是数据进入之后,或者数据出来之前,是不知道也不需要知道的,也不关心它如何传输,这属于网络其他层次的工作;
1、TCP
https://mp.csdn.net/mdeditor/90704793#
2、UDP
https://blog.csdn.net/Daria_/article/details/90720084