计算机网络
网络层——简单灵活、无连接、尽最大努力交付的数据报服务。
网际协议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编程的服务器端一般步骤是:
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)