1.什么是网络通信?
所谓通信是指将一个实体(信源)的信息传送给另外一个实体(信宿)的具体实现。参与通信的两个实体之间通过信道连接并传递信息。网络通信就是以网络作为信道所实现的通信。从软件层面上来说,网络通信依然是一种进程间通信,只是它强调在不同平台(操作系统)上的是实现。
2.网络中的进程如何表示?
网络中的进程是用一个三元组(半相关)作全局唯一标识的。这个三元组包括协议,本地地址和本地端口。
3.什么是套接字?套接字有哪些类型?各有何特点?
套接字是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。他为用户提供了一种在网络上发送和接收数据的机制。
套接字有三种类型:
(1)流套接字:用于提供面向连接、可靠的数据传输服务。该服务可以保证数据可以实现无差错、无重复发送,并按顺序接收。
(2)数据报套接字:提供一种无连接的服务。通信双方不需要建立任何显式连接,数据可以发送到指定的套接字,并且可以从指定的套接字接收数据。
(3)原始套接字:原始套接字可以读写内核没有处理的IP数据包。
4.什么是TCP通信?什么是UDP通信?两者有哪些区别?
TCP:传输控制协议,它工作在OSI的传输层,提供面向连接的可靠传输服务。该协议采用客户机-服务器模式。
UDP:用户数据报协议,它工作在OSI的传输层,提供面向无连接的不可靠传输服务。该协议采用客户机-服务器模式。
区别:
基于连接和无连接
- TCP要求系统资源较多,UDP较少
- UDP程序结构较简单
- 流模式和数据报模式
- TCP保证数据正确性,UDP可能丢包
- TCP保证数据顺序,UDP不保证
- 5.简述IO多路服用的实现原理.