网络编程理论基础

一个重要概念:Socket与TCP、UDP之间的关系?

     SOCKET是API,而TCP/UPD是通信协议,即:SOCKET是TCP、UDP的实现方式,用SOCKET编程可以实现TCP、UDP的通信。

      SOCKET就像一个管子,连接两端。而TCP、UDP就像管子中的东西。是液体还是气体。也就是传送的协议

  语言表达的例子:
用SOCKET实现TCP(或者UDP)通信。 (相反,TCP或者UDP通信也可以不使用SOCKET实现)

一、TCP协议(传输层)

二、UDP协议(传输层)

三、Http协议(应用层)

      a)关于端口

         Server端:强制使用的标准端口 80;还可绑定更多其它端口,eg:8000、8080等

         Client端:既可以使用固定的80端口,也可以任意指定

         说明:1024以内的端口号已经分配给标准服务,而且是强制性

                  1024以上的端口,可任意指定(部分也有习惯性含义,但不强制,eg:8080分配给http协议)

       b)应用程序和端口号之间的关系     

           一对多  

          一个应用程序可以绑定多个端口号,但是每个端口号只能属于一个应用程序;

          端口号一旦与某个应用程序绑定,则表示:所有连接到本端口的包都交个绑定的应用程序处理

      c)多个客户端连接的情况

           每进来一个客户端就产生一个新的套接字,每个套接字代表一个客户端的连接,它们都使用80端口

     d)浏览器通过http协议访问页面的流程

           1) 浏览器向DNS请求到域名对应的IP

           2) 通过IP+80端口,浏览器与服务器建立TCP连接

           3)浏览器发出http请求报文(eg: GET /chn/yxsz/index.htm)

           4)服务器发回http响应报文(eg: index.htm文件)

           5)释放TCP连接

           注:由上可知,http实际上是将TCP作为其传输层协议

四、FTP协议(应用层)

原文地址:https://www.cnblogs.com/edisonfeng/p/2125644.html