再学计算机网络计算机网络
网络层——简单灵活、无连接、尽最大努力交付的数据报服务。
网际协议IP：
与IP协议配套使用的三个协议：
1.地址解析协议ARP。
2.网际控制报文协议ICMP。
3.网际层管理协议IGMP。
IP地址的编址三个阶段：
1.分类地址。A,B,C,D,E类地址。
2.子网的划分。
3.构成超网。
IP地址特点：
1.每个IP地址由网络号和主机号两部分组成。
2.IP地址标志一台主机和一条链路的接口。
IP地址和硬件地址
物理地址是数据链路层和物理层用的地址。
IP地址是网络层和以上各层使用的地址，是一种逻辑地址。
在局域网的链路层，只能看见Mac帧，IP数据报被封装在Mac帧中，Mac在不同的网络上传输，Mac帧首部的源地址和目的地址要发生变化。IP数据报首部不会变化！
地址解析协议APR：通过IP地址找出相应的硬件地址。
TCP/UDP区别
TCP和UDP编程区别
TCP编程的服务器端一般步骤是：
1、创建一个socket，用函数socket()；
2、设置socket属性，用函数setsockopt(); * 可选
3、绑定IP地址、端口等信息到socket上，用函数bind();
4、开启监听，用函数listen()；
5、接收客户端上来的连接，用函数accept()；
6、收发数据，用函数send()和recv()，或者read()和write();
7、关闭网络连接；
8、关闭监听；
TCP编程的客户端一般步骤是：
1、创建一个socket，用函数socket()；
2、设置socket属性，用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上，用函数bind();* 可选
4、设置要连接的对方的IP地址和端口等属性；
5、连接服务器，用函数connect()；
6、收发数据，用函数send()和recv()，或者read()和write();
7、关闭网络连接；
与之对应的UDP编程步骤要简单许多，分别如下：
UDP编程的服务器端一般步骤是：
1、创建一个socket，用函数socket()；
2、设置socket属性，用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上，用函数bind();
4、循环接收数据，用函数recvfrom();
5、关闭网络连接；
UDP编程的客户端一般步骤是：
1、创建一个socket，用函数socket()；
2、设置socket属性，用函数setsockopt();* 可选
3、绑定IP地址、端口等信息到socket上，用函数bind();* 可选
4、设置对方的IP地址和端口等属性;
5、发送数据，用函数sendto();
6、关闭网络连接；
本地的进程间通信（IPC）有很多种方式，但可以总结为下面4类：
1、消息传递（管道、FIFO、消息队列）
2、同步（互斥量、条件变量、读写锁、文件和写记录锁、信号量）
3、共享内存（匿名的和具名的）
4、远程过程调用（Solaris门和Sun RPC）