【Java 网络编程】Socket TCP UDP 联系

2023-03-27 16:59:57 浏览数 (3)

文章目录

        • I 信息传输关注点
        • II Socket 与 TCP UDP 关系
        • III Socket 连接组成 ( IP地址 端口号 )
        • IV Socket TCP
        • V Socket UDP
        • VI CS 应用模型
I 信息传输关注点

信息传输不需要关心底层 : 将字符串数据从设备 A 传递给设备 B , 需要将数据转为电信号进行传输 , 但是我们不需要关心具体的信息如字符串中的某个字母 , 到底转成哪些电信号进行传输 , 如果需要考虑底层的具体操作 , 整个开发会非常繁琐 ;

快递发送案例 : A 向 B 发一份快递 , 首先将物品包装起来 ( 对应表示层的数据封装 ) , 然后贴上目的地标签 ( 对应网络层寻址和路由选择 ) , 然后送到快递公司 , 快递公司通过各种物流如航空或火车 ( 对应物理层的光电信号传输 ) , B 收到后 , 拆开快递 , 拿到物品 ; 该操作类似于 OSI 的七层网络模型发送数据信息 ; 发送信息的 A 不需要了解具体的物流过程 , 只需要将物品准备好即可 ;

II Socket 与 TCP UDP 关系

1. Socket 与 TCP UDP 之间的关系 : Socket 就是对 TCP UDP 协议进行的封装 , 主要封装了 IP 地址与对应的通信端口相关内容 ;

  • ① 端口 : 如使用 HTTP 协议访问网站 , 访问的就是 80 端口 ;
  • ② IP 地址 : 在网络中可以使用 IP 地址查找到指定网络设备 ;

2. Socket 是对 TCP/IP 协议的实现 , 具体指的就是 Socket 相关的 API , 包括流套接字 ( Stream Socket ) 和数据套接字 ( Datagram Socket ) ;

III Socket 连接组成 ( IP地址 端口号 )

1. Socket 作用 : 信息传输过程中 , 标识两个端点之间的网络连接 ;

2. Socket 连接与物理层连接 : 设备 A 与设备 B 通过 Socket 连接 , 该连接不是物理层面的连接 , 其物理层面可能正在连接 , 也可能没有连接 , 可能一次 Socket 连接要涉及到多次物理层连接与断开 , 物理层连接对 Socket 操作来说是透明的 ;

3. 端点 : IP 地址 端口号 , 代表了一个端点 ;

4. 服务器客户端 Socket 连接元素 : 在一个客户端与服务器的 Socket 连接中 , 涉及到了 ① 服务器 IP 地址 , ② 服务器端口号 , ③ 客户端 IP 地址 , ④ 客户端端口号 ;

IV Socket TCP

1. 三次握手 : TCP 是面向连接的通信协议 , 该协议下建立连接 , 需要三次握手 , 通信结束后要关闭连接 ;

2. 端到端通信 : TCP 协议只能用于两个端点之间的通信 , 通信时是无法与第三个端点进行通信 ;

V Socket UDP

1. UDP 协议特点 : UDP 是无连接的通信协议 , 其数据包含目标端口信息和源端口信息 ;

2. UDP 广播 : 该协议通信不需要建立连接 , 可以实现广播发送 ;

3. TCP 与 UDP 传输区别 : TCP 数据发送数据到另一端 , 必有一个反馈结果 , 或者成功 , 或者失败 ; UDP 发送数据 , 不管结果 , 只负责发送 , 不负责送达 ;

VI CS 应用模型

CS 应用模型 ( Client-Server Application ) : TCP/IP 协议的通信 , 主要使用的模型就是 CS 模型 , Server 和 Client 分别对应服务器端和客户端的两个进程 ; 其主要目的是实现网络中的计算机资源 , 服务 , 和数据的共享 ; 常用的 CS 模型是 FTP , SMTP , HTTP ;

0 人点赞