网络编程
两台主机的进程实现通信的方式
同一台主机中的实现进程间通信的方式有很多,比如管道、信号、消息队列、信号量集、共享内存等,如果现在需要两台主机间的进程实现数据传输,则想要用到套接字文件(socket)的,它的作用则是用于实现不同主机中的进程间通信的。
IP协议
1.IP地址格式为:高阶位、网络编号、本地地址组成。
2.端口号->查找进程任务
IP地址->查找主机
子网掩码->查找所在主机网络
3.IP协议中把网络地址主要分为三类,分别是A类地址(*0*. ~ *127*. )、B类地址(*128*.0 ~ *191*.255)、C类地址(*192*.0.0 ~ *223*.255.255)。其实对于IP地址而言,还存在D类地址和E类地址,只不过这两类地址不用于标识主机,因为这两类地址没有分配本地地址,也就是这两类地址的32bit全部分配给网络编号。
网络模型的结构
-
物理层(提供数据传输需要的介质)
常见的物理层相关的硬件设备一般包含集线器、中继器等。对物理层而言,数据的单位是比特(bit)。
-
数据链路层(在物理层所提供服务的基础上,向网络层提供各种协议)
(1)常见的数据链路层相关的硬件设备一般包含交换机、网桥等,交换机和网桥都是通过网卡设备的MAC地址进行帧的发送/接收。数据链路层中把数据块称为帧(Frame),对数据链路层而言,单位是数据帧。数据链路层除了点对点协议(PPP协议)之外,还存在其他协议,比如以太网协议等。
(2)最大传输单元(Maximum Transmission Unit,MTU)为了防止数据帧在不同协议中的数据帧过大,对数据帧的大小做出约束,就提出最大传输单元的概念,MTU以字节为单位。
-
网络层(理解数据链路层中存在的不同协议,从而向传输层提供最基本的端到端的数据传送服务)
(1)和网络层相关的硬件设备就是路由器,它能够理解不同的协议,比如某个局域网使用的以太网协议,或者因特网中使用的TCP/IP协议。
(2)IP协议是以数据块的形式把信息从源主机传输到目标主机,而源主机和目标主机都是通过*固定长度的地址(IP地址)*来进行区分。IP协议中把这种数据块称为*数据报(IP Datagram)*,数据报报首包含了协议版本、报首长度等相关信息。
-
传输层(收到网络层发过来的数据包,决定发给哪个进程)
(1)传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram Protocol),其中UDP协议属于不可靠协议,TCP协议属于可靠协议。
-
会话层(会话层是在发送方和接收方之间进行通信时创建、维持、之后终止或断开连接的地方)
-
表示层(表示层从应用层接受数据,将这些字符和数据转换成机器能够理解的二进制数据,这个功能称为“翻译”功能)
-
应用层(为应用进程提供服务)