![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
suxuefeng123
golang,docker,k8s,微服务,后端
展开
-
TCP三次握手为什么三次,两次为什么不可以?
为什么不可以是两次握手?当客户端向服务器端发送一个连接请求时,由于某种原因长时间驻留在网络节点中,无法到达服务器端,由于TCP的超时重传机制,当客户端在特定的时间内没有收到服务器端的的确认应答时,就会重新向服务器端发送连接请求,该请求到达服务器端并建立连接,进行数据传输,当数据传输完成时,释放了TCP连接。若此时第一次的连接请求报文段延迟了一段时间后到达了服务器端,本来这是一个很早到达的失...转载 2019-10-30 20:09:34 · 981 阅读 · 0 评论 -
网络编程-网络概述
经典协议 应用层:常见的协议有HTTP协议、FTP协议 传输层:常见协议有TCP/UDP协议。 网络层:常见的协议有IP协议、ICMP协议、IGMP协议 链路层:常见的协议有ARP协议、RARP协议。 TCP:传输控制协议 是一种面向连接的、可靠的、基于字节流的传输层通信协议。 UDP: 用户数据报协议 是OSI参考模型中一种无连接的传输...原创 2019-05-22 17:14:35 · 237 阅读 · 0 评论 -
网络编程--Socket编程(TCP)
什么是Socket Socket,英文含义是插座、插孔。一般称之为套接字,用于描述IP地址和端口,可以实现不同程序间的数据通信。 Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。 T...原创 2019-05-22 19:54:38 · 280 阅读 · 0 评论 -
网络编程--TCP通信并发版C/S
上一篇文章实现了的是单次通信,且一个服务器只能连接一个客户端。这里使用goroutine实现并发版的,可以实现多个客户端连接服务器,实现并发请求。示意图如下:server端代码:package mainimport ( "fmt" "net" "strings")func main() { //指定服务器通信协议、IP地址、Port端口,创建一个用于监听的sock...原创 2019-05-22 22:17:29 · 360 阅读 · 0 评论 -
网络编程--Socket编程(UDP)
TCP和UDP对比优缺点:TCP通信:面向连接的,可靠的数据包传输。UDP通信:无连接的,不可靠的报文传递。UDP通信的优点:由于无需建立连接就可以传递数据,所以传输速度远远比TCP通信快。UDP通信的缺点:无连接,因此会丢包严重。需要在应用层封装一个协议校验传输层UDP协议的传递数据。例如QQ,微信都是用的UDP传输协议。TCP和UDP差异对照表:使用场景:...原创 2019-05-23 13:58:35 · 507 阅读 · 0 评论 -
网络编程--UDP通信并发版C/S
server端: 由于udp不需要建立连接,因此在读客户端数据的时候,使用for循环即可。相当于多个客户端的请求被排列在通道中,服务器循环读取通道中的数据。但是在回发数据给客户端的时候,可以开启goroutine,并发的把数据回发的多个客户端。package mainimport ( "fmt" "net" "time")func main() { //1.指定...原创 2019-05-23 14:51:41 · 442 阅读 · 0 评论 -
网络编程--TCP网络文件传输
网络文件传输(客户端上传本地文件到服务器)借助TCP完成文件的传输,基本思路如下: 1.客户端向服务器发送文件名,服务器保存该文件名。 2.服务端向客户端返回去一个消息ok,确认文件名保存成功。 3.客户端收到消息后,开始向服务器发送文件数据。 4.服务端读取文件内容,写入到之前保存好的文件中。 示意图大致如...原创 2019-05-23 19:37:07 · 1696 阅读 · 0 评论