目 录CONTENT

文章目录

Socket的学习(一)

在水一方
2022-03-06 / 0 评论 / 0 点赞 / 327 阅读 / 1,093 字 / 正在检测是否收录...

前言

在RPC的相关问题学习时提到了Socket(套接字),用于描述ip和端口,ip指向某个服务器,端口用于连接到某个应用程序,RPC是建立在Socket的基础上,在网络通讯的过程中,对于这个过程是如何来进行的这部分知识点非常模糊,本小节来对Socket来学习一下

📖学习原因

1 RPC框架的远程调用建立在Socket基础上,为理解RPC的原理打下基础
2 多线程的通讯基于Socket
3 基于socket可实现tomcat,对于学习tomcat也有一定帮助
4 gateway的Netty框架基于Socker
5 为理解分布式微服务架构的IO模型

Socket概念

Socket是对网络中不同主机上的应用进程之间进行双向通信的一种抽象,可以接受请求也可以发送请求,客户端发送请求,服务端接收请求

TCP/IP概念

TCP/IP是当前流行的网络传输协议框架,中文译为:传输控制协议/因特网互联协议

TCP协议是一种面向连接、确保数据在端到端间可靠传输的协议。面向连接是指在发送数据前,先建立一条虚拟的链路,然后让数据在这条链路上"流动"完成传输,TCP建立连接只有3次,而挥手断开需要四次

类似打电话原理?手机号可以当做是ip:端口??

TCP的三次握手,四次挥手

连接三次握手的主要目的:信息对等和防止超时,也是为了防止出现请求超时导致脏连接

其他协议:HTTP、HTTPS、FTP、SMTP、UDP(QQ空间漂流瓶案例)、ARR、PPP等

应用层协议:Http/ftp/smtp等
传输层协议:TCP/UDP
网络层:IP/ARP
链路层:IEEE802.x/PPP

Socket的原理

image.png

Java如何支持Socket

Java中有一个专门用来建立Socket服务器的类,名叫ServerSocket(位于java.net包下),可以用服务器需要使用的端口号作为参数来创建服务器对象

   ServerSocket serverSocket = new ServerSocket(9808); //   创建绑定到特定端口的服务器套接字
   serverSocket.accept();  // 接受到此套接字的连接
   serverSocket.close();  //关闭套接字

WebSocket的出现,使得浏览器具备了实时双向通信的能力.socket的调试可以通过Socket调试工具来进行

待续.......

socket编程基础

https://www.bilibili.com/video/BV11p4y1b7eK?from=search&seid=14549520745486483499&spm_id_from=333.337.0.0

0

评论区