目录
一.IP地址
1.什么是IP地址
IP地址是用来标识网络主机以及一些其它网络设备(路由器等)的网络地址,简单来说就是用于定位主机的网络地址。
2.IP地址的格式
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6
3.特殊的IP地址
127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开
发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。
二.端口号
1.什么是端口号
在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。
简单说:端口号用于定位主机中的进程,描述了一个主机上的某个应用程序
2.格式
端口号本质上是一个2个字节(16)的无符号整数
2.注意事项
两个不同的进程,不能绑定同一个端口号,但 一个进程可以绑定多个端口号
三.协议
1.什么是协议
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。通常由三要素组成:1.语法;2.语义;3. 时序
2.语法
即数据与控制信息的结构或格式;
类似打电话时,双方要使用同样的语言:普通话
3.语义
即需要发出何种控制信息,完成何种动作以及做出何种响应;
语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。
类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!
4.时序
即事件实现顺序的详细说明。
时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是
异步传输。
四.协议分层
1.什么是协议分层
网络通信这个过程,其实很复杂,里面有很多很多的细节,如果只是通过一个协议,来约定所有的细节,这个协议就会非常庞大复杂;因此更好的办法就是把一个大复杂的协议,折成多个小的,更简单的协议,每个协议,负责一部分工作。
2.TCP/IP协议
TCP/IP协议有五层协议
TCP/IP分层模型
3.各层的作用
物理层:网络中的硬件设备~~例如网线/网卡......针对硬件设备的约定,就是物理层协议所负责的范畴,需要保证所有的主机和网络设备之间,都是相互匹配的
数据链路层:负责完成相邻的两个设备之间的通信的
网络层:负责点到点之间的通信,网络中的任意节点,到任意节点之间的通信(不一定是想邻 的,更多的是指不相邻的)
网络层就负责在这两个点之间,规划出一条合适的路线(实际的网络环境结构非常复杂,两个点之间的路线不止一条,所以就需要规划出最合适的一条)
传输层:负责端与端之间的通信(起点和终点,只关注结果,不关注过程)
应用层:和应用程序密切相关的,你传输的这个数据是干啥用的,不同的应用的程序就有不同的用途
五.封装和分用
1.什么是封装和分用
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)
首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理。
2.封装过程
3.分用过程