1通信连接
一个服务器会跟多个客户端连接,他们要遵守同一个协议族才能进行数据的收发
2、网络拓扑
1局域网拓扑
客户端发送请求(输入网址)然后请求进入内核,然后经过TCP/IP协议到以太网驱动程序(网卡)然后在进入另外一个网卡,然后通过内核找到服务器端

2.广域网拓扑
客户应用进程,通过TCP/IP的主机,消息进入内核谈话经过层层路由器,到达另外一个TCP/IP的主机然后进入服务器应用进程
3.一个网页的传输,以及网络抓包工具wireshark 的使用
传输层网络层基本都集成在内核中,提供接口供应用层使用
TCP和UDP编程模型
1、传输层TCP和UDP
1、OSI七层模型

通过socket套接字把应用层的数据插入到协议栈
应用层可以直接跨过传输层直接操作网络层
2、TCP是什么
传输控制协议
向用户进程提供可靠的全双工字节流
3、UDP是什么
用户数据报协议
UDP是一种无连接的协议
2、TCP编程模型


用listen进行监听,accept进行睡眠等待
收到数据后回向对方发送一个确认报文,如果一直未发,可能会触发超时重发,再次发送报文
TCP的三次握手四次挥手

服务器必须准备号接收外来连接
客户端通过connect主动打开一个连接,此时客户端TCP将会发送一SYN分解
服务器必须确认客户的分节(收到SYN恢复ACK)
客户必须确认服务器的SYN恢复的ACK序号为SYN序号+1
ACK:确认序号的标志,ACK=1表示确认号有效,ACK=0表示报文不含确认序号信息
SYN:连接请求序号标志,用于建立连接,SYN=1表示请求连接
FIN:结束标志,用于释放连接,为1表示关闭本方数据流
第一次:客户端发送初始序号x和syn=1请求标志
第二次:服务器发送请求标志syn,发送确认标志ACK,发送自己的序号seq=y,发送客户端的确认序号ack=x+1
第三次:客户端发送ACK确认号,发送自己的序号seq=x+1,发送对方

本文详细介绍了网络编程中的TCP和UDP协议,包括通信连接、网络拓扑、TCP和UDP编程模型。讲解了TCP的三次握手四次挥手过程,以及UDP的无连接特性。还探讨了TCP和UDP在实际编程中的应用,如套接字API的使用、多进程并发服务器、IO模型(阻塞、非阻塞、信号驱动、异步、IO复用)以及epoll在高并发场景下的优势。
最低0.47元/天 解锁文章
1777

被折叠的 条评论
为什么被折叠?



