1. IP地址
概念 IP地址主要用于标识网络主机. 其他网络设备(路由器)的网络地址. IP地址用于定位主机的网络地址
格式 IP地址是一个32位的二进制数, 通常被分割为4个8位二进制数, 通常用"点分十进制"的方式来表示. 如:101.1.1.1
特殊IP地址 127.*: 本机环回测试, 通常为127.0.0.1 它主要用于本机的网络通信, 如果用网络方式进行本机通信, 会降低性能
我们在进行网络通信时, 已经知道了网络的IP地址, 他可以定位到网络主机, 但是并不会定位到某个进程进行通信, 所以需要端口号来表示
2. 端口号
概念 端口号主要用来定位主机中的进程, 在网络通信中, 进程通过端口号来发送及接收网络数据.
格式 端口号是0~65535范围的数字 两个进程不能绑定同一个端口号, 一个进程可以绑定多个端口号.
端口号的确定 每个应用程序都有自己指定的端口号, 例如HTTP. FTP. TELNET等使用的端口号都是固定的, 这些端口号被称为知名端口号, 分布在0~1023之间, 除了知名端口号之外, 还有一些端口号被正式注册, 他们分布在1024 ~ 49151之间. 服务器有必要确定监听端口号, 但是对于接受服务的客户端没必要确定端口号, 在这种情况下, 客户端应用程序完全可以不用自己设置端口号, 交给操作系统进行分配. 动态分配的端口号范围在49152 ~ 65535之间
通过IP地址和端口号可以定位到网络中唯一个进程, 但是网络通信是基于二进制数据来传输, 又该如何将这个数据告诉接收方, 接收方又是如何处理的呢?
3. 协议
网络协议是网络通信经过所有网络设备都必须共同遵从的一组约定.
网络协议由三个要素组成
语法: 用户数据与控制信息的结构或格式, 以及数据出现的顺序.
语义: 解释控制信息每个部分的意义, 它规定了需要发出何种控制信息, 以及完成的动作与做出什么样的响应
时序: 对事件发生的顺序的详细说明
五元组
在TCP/IP协议中, 用五元组标识一个网络通信
- 源IP: 标识源主机
- 源端口号: 标识源主机中该次通信发送的数据的进程
- 目的IP: 标识目的主机
- 目的端口号: 标识目的主机中农该次通信发送的数据的进程
- 协议号: 标识发送进程和接收进程双方约定的数据格式
4. 协议分层
对于适用方来说, 并不需要关心提供方是如何实现的, 只需要适用协议的接口就行了
对于提供方来说, 利用封装的特性, 隐藏了实现的细节, 只需要开放接口即可
对于OSI模型由七层协议
- 应用层: 针对特定应用的协议
- 表示层: 设备固有数据格式和网络标准数据格式的转换
- 会话层: 通信管理, 负责建立和断开通信连接
- 传输层: 管理两个节点之间的数据传输, 负责可靠传输
- 网络层: 地址管理和路由选择
- 数据链路层: 互连设备之间传送和识别数据帧
- 物理层: 以’0’ '1’代表电压的高低, 灯光的闪灭. 界定连接器和网线的规格
实际组建网络时, 只是以OSI七层模型设计中的部分分层. 也就是TCP/IP五层模型
TCP/IP五层协议
- 应用层: 负责应用程序间通信, 如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远
程访问协议(Telnet)等 - 传输层: 负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机
- 网络层: 负责地址管理和路由选择
- 数据链路层: 负责设备之间的数据帧的传送和识别
- 物理层: 负责光/电信号的传递方式
5. 封装和分用
数据包 包: 全能性术语 帧: 用于表示数据链路层中包的单位 数据包: IP和UDP等网络层以上的分层中的单位 段: TCP数据流中的信息 消息: 应用层协议中数据的单位
在每个分层中, 都会对所发送的数据附加一个首部, 在这个首部中包含了该层必要的信息 当用户发送数据时, 该数据进入传输层, 传输层将发送的数据附加一个TCP包首部, 然后封装起来发送到网络层. 此时网络层传输层发来得数据看成一个数据, 在这个数据上加一个IP包首部. 再次进入数据链路层将网络层发来的数据加上以太网包首部.
|