计算机网络的组成:计算机网络由一组通过通信信道相互连接的机器组成。这些机器包括主机(hosts)和路由器(routers)。其中主机指运行应用程序的计算机,路由器主要负责将信息从一个通信信道传递或转发到另一个通信信道。
通信信道(comminication channel):将字节序列从一个主机传输到另一个主机的一种手段,比如以太网,有线电缆等。
分组报文(packet):在计算机网络环境中,由程序创建和解释的字节序列称为分组报文。分组报文包含两部分内容:一部分是网络用来完成工作的控制信息,另一部分则是用户数据。
协议(protocol):规定分组报文的交换方式和包含的意义。eg.HTTP协议就规定了传递超文本对象的相关约定。
TCP/IP协议族(TCP/IP protocol suite):包括IP协议(Internet Protocol),TCP协议(Transmission Control Protocol),UDP协议(User Datagram Protocol)。其中IP协议属于网络层,TCP/UDP协议均属于传输层。
IP协议:每组分组报文都是由网络独立处理和分发,每个IP报文必须包含一个保存目的地址的字段。IP协议是一种best-effort的协议,即它试图分发每一个分组报文,但不保证一定送达。IP协议只是主机到主机的协议。
TCP协议:端到端传输协议(end-to-end transport protocol)的一种。TCP协议是一种面向连接的协议,两个应用程序间需要通过握手消息(handshake message)完成连接建立,然后再进行通信,所以它提供了一种reliable byte-stream。能够检测和恢复IP层提供的主机的信道中可能发生的报文丢失、重复及其他错误。
UDP协议:端到端传输协议(end-to-end transport protocol)的一种。UDP协议仅仅简单扩展了IP协议,所以仍然属于一种best-effort的协议,不能处理可能发生的报文丢失、重复错误及其他错误。
客户端/服务器端:客户端是通信的发起者,服务器端则是被动等待客户端发起通信,并对其作出响应。
Socket:套接字是一种抽象层,应用程序通过它来发送和接收数据。不同类型的socket与不同类型的底层协议族以及同一协议族中的不同协议栈相关联。在TCP/IP协议族中,主要的Socket类型为流套接字(stream socket)和数据报套接字(datagram socket)。
流套接字:将TCP/IP作为其端对端协议,提供了一个可信赖的字节流服务。一个TCP/IP流套接字代表了TCP连接的一端。
数据报套接字:使用UDP协议作为其端对端协议,提供了一种best-effort的数据报服务,应用程序通过它最长可发送65500字节的个人信息。