计算机网络小结
一、TCP/IP体系结构
首先OSI参考模型,OSI将网络分为七层,自下而上分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP体系结构则将网络分为四层,自下而上分别是网络接口层、网络层、传输层、应用层。
(一)TCP协议
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
面向连接指的是先建立连接再发送数据;可靠就是如果包在运输过程中有损坏或者丢失就重新发包;基于字节流是分开发包,包不是在一个包裹里,是一个一个发的过程。
二、Socket
套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。
程序可以用IP+端口号(port)进行唯一标识,作为一个方法供实例调用,那么这个程序的入口就被称作Socket。Socekt编程,将TCP协议简化一下,就只有三个核心功能:建立连接、发送数据以及接收数据。可以把Socket编程理解为对TCP协议的具体实现。
WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。
三、进程PID[Process ID]与端口号Port[(Port ID)]的联系
PID:是系统分配给一个进程的唯一标识符。PID就是各进程的身份标识符,程序一运行系统就会自动分配给进程一个独一无二的PID。进程终止后,PID被系统回收,可能会被继续给新运行的程序。
Port端口:端口对CPU来说,是作为它用来发送或接收数据的一个或多个内存地址的。常见的有mysql:3306端口;http:80端口;https:443端口;
IP可以类似与一个市民中心,Port端口可以类似与办理社保、护照等窗口,就像社保的窗口是在80号窗口一样。而PID进程就类似于在80号窗口工作的员工。所以要找到办理社保的地方,就需要通过找到市民中心+80号窗口(IP+Port),然后才会处理你的事情。