计算机网络协议浅谈UDP、TCP、Socket

一、TCP/UDP

TCP/UDP是运输层的协议(按五层划分为:物理层,数据链路层,网络层,运输车,应用层)
1、TCP是面向连接的传输,数据安全;UDP是面向无连接的传输,数据不安全
2、TCP是面向字节流的,UDP面向数据报
3、TCP面向点对点连接,UDP可以一对多
4、基于TCP的网络协议有HTTP/HTTPS/FTP/SMTP等,基于UDP的网络协议有DNS/NFS/TFTP等
5、TCP首部最小长度20字节,最大长度60字节。UDP只有8字节

二、HTTP

HTTP是应用层的协议(超文本传输协议),他是定义浏览器是如何跟服务器如何通信以及通信的数据格式。HTTP和TCP的关系为:HTTP是在TCP连接的基础上建立连接的,TCP就是单纯建立连接,不涉及任何我们需要请求的实际数据,简单的传输。HTTP是用来收发数据,即实际应用上来的。

在客户端和应用服务器建立TCP连接之后,就需要用HTTP协议来传送数据了,HTTP协议简单来说,还是请求,确认,连接。总体就是C发送一个HTTP请求给S,S收到了这个HTTP请求,然后返回给CHTTP响应,然后C的中间件或者说浏览器把这些数据渲染成为了网页,展示在用户面前。
总之:TCP是定义连接的方式和规范,HTTP是定义传输数据的内容和形式

三、Socket

Socket是一种套接字,可以实现不同虚拟机或不同计算机之间的通信,创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接(一般来讲都是建立的TCP连接,其实就是“三次握手”操作),因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。socket的生命周期为3个阶段:打开socket、使用socket收发数据、关闭socket,读写操作是IO的事情,socket只是接收对方写好的数据和发送自己写好的数据(聊天室就是这样的原理)。

在客户端创建socket用:Socket socket = new Socket(“IP地址”,端口号);
服务器端创建socket用:ServerSocket server = new ServerSocket(端口号);
            Socket socket = server.accept();//服务器端向客户端发回accpet消息,在队列中返回一个socket对象。

发布了35 篇原创文章 · 获赞 16 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/qq_38795430/article/details/100852356
今日推荐