一、概述
- 网络通讯协议
- Internet最基本的协议
- 由网络层的IP协议和传输层的TCP协议组成
二、应用层功能概述
应用层:提供应用协议,用户与网络面对面的接口。负责对软件提供接口以使程序能使用网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。应用程序通过这层访问网络。应用程序只有实现了这一层的协议,才可以访问网络。
最重要的一个应用层协议:HTTP:超文本传输协议,是从Web服务器传输超文本到本地浏览器的传送协议。
三、传输层功能概述
传输层要完成这样一些具体的工作:
把传输地址映射为网络地址:首先要实现传输地址到网络地址的映射,以便通过网络层的路由服务在茫茫网络中找到要进行数据传输的目的端点。
传输连接管理:对于面向连接的传输服务,一旦找到端点,就要通过握手过程建立连接,然后才能进行数据传输,在数据传输期间,要维持连接的畅通,监控连接的工作状态。传输结束后还要友好地将连接释放,避免空占传输信道资源。
把端到端的传输连接复用到网络连接上:一旦一对传输端点确定,这对端点之间可以同时进行多种服务数据的传输,不同的服务数据各自通过不同的服务端口传输,每一对服务端口的连接可以看作一个传输逻辑通道,他们可以共用一个网络连接。即通过一路网络连接实现端点到端点的多路传输连接。
完成传输服务数据单元的传送:数据传送是目的,其他前后进行的工作都是为此目的而服务的。
端点到端点传输时的差错检验及对服务质量的监督:对于可靠传输服务,要对传输到达端点的数据进行顺序控制、差错检测及纠正,以及数据的分段处理及QoS监测。
端点流量的控制:当传输服务数据单元在通信子网的传输过程中发生了拥塞,或者接收端点的处理速度来不及处理收到的数据单元,这时就要对数据单元的流量加以控制。
提供两种不同的传输协议
TCP
UDP
四、网络层
处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
处理路径、流控、拥塞等问题。
网络层的IP协议是构成Internet的基础。Internet上的主机通过IP地址来标识。
五、数据链路层
为网络层提供服务。
模型的基层,负责数据帧的发送和接收,网络接口层负责接收IP数据报并通过网络发送之, 或从网络上把帧取下来,网络上接收物理帧,抽出IP数据报,交给IP层。帧:独立的网络信息传输单元。
六、两台计算机通过TCP IP协议通讯的过程
七、网络传输数据的封装
说明:
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。
八、目的主机收到数据包后,如何经过各层协议栈最后到达应用程序呢?
九、TCP、UDP、HTTP、SOCKET之间的区别
IP:网络层协议;
TCP和UDP:传输层协议;
TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。HTTP:应用层协议;
HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。SOCKET:Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
Socket接口定义了许多函数或例程,用以开发TCP/IP网络上的应用程序。
用SOCKET实现TCP(或者UDP)通信。 (相反,TCP或者UDP通信也可以不使用SOCKET实现)
SOCKET是API,而TCP/UPD是通信协议,两种根本不同的东西。
实际上socket是对TCP/IP协议的封装和应用(程序员层面上),Socket本身并不是协议,而是一个调用接口(API)。