一: 套接字
首先java网络编程也称socket编程,socket就是套接字,什么是套接字,套了什么呢?引入主题
套接字 套的是“应用层”与“传输层”
图是自己理解化的,如有误评论指出再调整噢
- 通信时其中一个网络应用程序将要传输的一段信息写入它所在主机的 Socket中,该 Socket通过与网络接口卡(NIC)相连的传输介质将这段信息送到另外一台主机的 Socket中,使对方能够接收到这段信息。
- 套接字存在于通信区域,通信区域也被称为地址族,Socket的出现,使得程序员可以很方便地访问 TCPIP,从而开发各种网络应用程序
- 可以将套接字看作不同主机间的进程进行双间通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。
- Socket(套接字)可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。
Socket是由IP地址和端口结合的,提供向应用层进程传送数据包的机制 [2] 。
套接字上联应用进程,下联网络协议栈,是应用程序与网络协议根进行交互的接口
osi七层模型中,其中 因为应用层仅支持“HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3协议” 不能满足更多自定义协议,所以某大学在unix中增加了socket,便于程序猿自定义 协议通过tcp/udp运输出去,接收回来
本地curl www.baidu.com进行
有时候会出现三次挥手,说三次挥手是不准确的,因为包具有重叠,原理是会四次挥手;
下面的是访问一个网站过程,通过route -n 显示本机的网络信息以及访问外网时,经过网关路由机器Gateway 吓一跳出去的信息地址
下一跳:Gateway
本机
二:应用层