TCP和UDP总结

OSI(开放式系统互联)模型:应用层、表示层、会话层(建立管理终止会话)、传输层、网络层、数据链路层。
TCP/IP模型:应用层(HTTP、FTP)、传输层(TCP、UDP)、网络层(IP)、数据链路层(MAC地址)。
往下一层层添加新信息:TCP/UDP头部、IP头部等

TCP:面相连接,有三次握手建立连接,四次回收断开连接,有数据确认、超时丢失重传、拥塞机制等,以确保数据的准确、顺序。
UDP:无连接,速度快

三次握手:client发起请求,server发出响应ACK,client发出响应
四次挥手:client发起请求,server发出收到(此时缓冲区可能有数据,先发完数据),server发出断开,client发出响应,2MSL最大段生存时间后关闭连接

拥塞窗口:一次发送时应该尽可能的发多一点字节,但是不知道对方的接收能力,只能一点点增大发送的字节个数。在没达到ssthresh值前为2^N增长;到达后为线性增长;一直增长,终于发生丢失的时候,ssthresh=ssthresh/2,并从新开始。
广播:单播、组播组、局域网组播

异步
监控文件描述符的可读、可写、异常
select:跨平台,最大1024个文件描述符。文件描述符放入数组(数组在用户态和内核态之间复制),使用轮询的方式检查,时间随文件描述符个数线性增长。(每次要重新设置FD_SET和时间)
poll:同select,文件描述符个数无限制,用于Linux。
epoll:文件描述符个无限制,使用事件触发(水平触发:有这个事件一直触发,直到被处理;边缘触发:只触发一次)

并发
accept、write、read都放入线程中处理
线程池

粘包:
使用HTTP
添加包头、包尾、长度等

HTTP请求:请求头、请求体
GET请求:请求参数在URL中,长度有限
POST请求:请求参数在请求体中,长度无限
客户端发出请求后:向nameserver域名解析;服务器接收请求(可能有拦截过滤、登录、cookie/session/jwt验证、路径过滤、权限等)再解析请求参数,增删改查;返回响应结果
响应状态码:1XX处理中,2XX成功,3XX重定向,4XX客户端错误,5XX服务器错误

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值