socket TCP 和 UDP
简单概述
在互联网中,不同地区的计算机/设备通过Internet相互联系,但是因为习惯和语言的不同,容易造成双方不能直接沟通,因此加入了一系列协议,规定什么样的通信使用什么样的协议,这些协议称为互联网协议(Internet Protocol Suite),互联网的本质就是一系列协议;TCP协议和UDP协议就是众多协议中的一部分。
- 如两个人打电话,双方说着不同的方言,为了沟通顺畅,可以一起使用同一标准的普通话。
- 而当广西的A想给某国的C打电话时,双方语言不同,就得依靠翻译,增加了沟通成本。如果大家都能使用同一种语言(标准),这样沟通就方便多了。
- 因此就诞生了互联网协议,这些协议定义计算机如何接入internet,以及接入internet的计算机通信的标准。
网络编程
- 网络编程就是Socket编程
- socket编程: 二进制 + IP + 端口通讯的一种模式
- 在任何语言中都有socket编程,因此几乎所有的语言的socket都可以互通;如C可以和PHP、JAVA使用socket通讯
网络模型分层
简单的tcp/ip四层
功能 协议 应用层 HTTP协议 传输层 TCP协议 网络层 IP协议 链路层 以太网协议 详细介绍:网络通信原理_网络_梦心之魂的博客-CSDN博客
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
每层运行常见物理设备
4.区分客户端和服务器端
- 谁发起请求,谁就是客户端(client)
- 谁接受请求,谁就是服务器端(server)
简单概述TCP、UDP
TCP
- 点对点的建立链接
- 如同两个人写信,你需要知道对方的具体地址(ip)还需要知道对方的姓名(port)^port
UDP
- 一对多单向广播,一次最多64K
- 如同学校广播通知,内容需要简短易懂(64k),接收信息的人特别多(一对多单向广播),不是所有人都能听到以及感兴趣
总结两者区别:UDP面向无链接,不管有没有接收方,都会发出去,但是发送的数据最多只有64kb,这种方式很有效率但是不够安全。而TCP协议则规定了数据传输时要三次握手四次分手的过程,是比较安全的,是点对点面向有链接的。
因此在做有链接的数据通讯编程时,TCP是首选,而不那么看中安全性以及面向无链接时,则可以选用UDP。
简述TCP的三次握手过程 - 清风木 - 博客园
总览图 | ||
---|---|---|
TCP三次握手 | ||
TCP四次挥手 | ||
SYN:同步序列编号(Synchronize Sequence Numbers) |
TCP 和 UDP 的优缺点
协议 | 特点 | 优点 |
---|---|---|
TCP | 点对点,面向链接 | 安全性高 |
UDP | 一对多,面向无链接 | 效率高 |
注释
Comments