本章目录
- 一、基础概念
- 1、TCP/IP
- 2、首要问题:实现寻址
- 3、域名DNS
- 4、使用客户/服务器模式
- 5、服务器的端口号
- 6、客户端的端口号
- 7、UDP
- 8、选择TCP还是UDP
- 9、Internet,物理传输,路由
- 10、总结
- 二、网络客户端
- 1、Socket
- 2、建立socket
- 3、寻找端口号
- 4、从socket获取信息
- 5、处理错误
- 6、Socket异常
- 7、4种异常
- 8、总结
- 三、网络服务器
- 1、特点
- 2、准备连接
- 3、使用UDP
- 4、死锁的发生
- 5、避免死锁
- 6、总结
- 四、域名系统(DNS)
- 1、定义
- 2、进行DNS查询
- (1)本地解析
- (2)直接解析
- (3)递归解析
- (4)迭代解析
- 3、防止反向查询欺骗
- 4、总结
一、基础概念
1、TCP/IP
TCP/IP是标准的协议,使得世界范围内的计算机通过Internet或本地的网络通信。

2、首要问题:实现寻址

3、域名DNS

4、使用客户/服务器模式

5、服务器的端口号

6、客户端的端口号

7、UDP

8、选择TCP还是UDP


9、Internet,物理传输,路由

10、总结
TCP/IP协议可以用于多种不同的传输,如以太网和移动网络。
每个终端靠唯一的IP地址和端口号来区分。
服务器通过一些事先知道的端口来侦听连接。数据传输协议
TCP:可以提供可靠性和完整的会话;
UDP:用于小并且简短但快速的会话。二、网络客户端
1、Socket

2、建立socket

3、寻找端口号
问题:查询一个服务器端口号的列表
实例:http转换为一个端口号,你用协议名和端口名4、从socket获取信息

5、处理错误

6、Socket异常

7、4种异常

8、总结
网络通信的基本接口:socket
socket()建立socket
connect()建立连接三、网络服务器
1、特点
等待来自客户端的请求,发送应答。
2、准备连接
建立socket对象
设置socket选项(可选)
绑定到一个端口/一个指定的网卡
侦听连接3、使用UDP

4、死锁的发生

5、避免死锁
死锁发生在一个服务器和客户端同时试图往一个连接上写东西和同时从一个连接上读的时候。
确保客户端每次执行完send()后,进行一次recv()。
使客户端发送较少的数据。
使用多线程等,使客户端同时发送和接收。6、总结

四、域名系统(DNS)
1、定义

2、进行DNS查询
(1)本地解析

(2)直接解析

(3)递归解析

(4)迭代解析

3、防止反向查询欺骗
先进行反向查询,你将根据IP地址得到一个域名。再根据这个域名进行一次正向查询。
如果正常,则第1步得到的IP地址应该在正向查询得到列表上。否则,就是有人在提供伪造的反向查询信息。4、总结
DNS用于在文字名称和底层通信的IP地址之间转换。
标准(正向)查询把文字翻译成数字类型的IP地址。
反向查询把IP地址翻译成主机名。









