[1]-计算机网络
来源:互联网 发布:androis中的js调试 编辑:程序博客网 时间:2024/04/28 02:54
拥塞控制和流量控制
- 接收方:流量控制
- 滑动窗口、避免发送方发包太快,超过接收方的缓存
发送方:拥塞控制
- 防止过多的数据注入到网络中,承受网络负荷
- 发送方维持cwnd(拥塞窗口),定义ssth(慢开始门限)
慢开始、拥塞避免、快重传、快恢复
- cwnd < ssth,
1)慢开始
,cwnd=1,cwnd=cwnd*2 - cwnd>ssth,
2)拥塞避免
,cwnd=cwnd+1 - 收到3个相同ack
3)快重传
,重传ack序号+1分组;3)快恢复
,cwnd=ssth/2,2)拥塞避免
- 出现拥塞,ssth=cwnd/2,
1)慢开始
- cwnd < ssth,
三次握手listen()
维持一个监听套接口的
未完成队列
- 服务器已收到了来自客户端的请求,三次握手的第一个分节到达
- 将它加入未完成队列,然后响应三次握手的第二个分节
- 此时套接口处于
SYN-RCVD
状态
维持一个监听套接口的
已完成队列
- 服务器已收到了来自客户端的请求,三次握手的第三个分节到达
- 从未完成连接队列移到已完成连接队列的队尾
- 套接口处于
ESTABLISHED
状态
为什么用三次握手
- 若client没收到第二个分节
- client不知道连接已经建立
- server认为已建立,在一定时间内保留资源
- 如果大量的client请求,server会崩溃
为啥使用四次挥手
- 客户端,不再传数据给服务器
- 服务器,不再传数据给客户端
public class SocketServer{ public static void main(String[] args) throws Exception{ ServerSocket serverSocket = new ServerSocket(2013); boolean status=serverSocket.isBound(); System.out.println(status); while (true){ Socket socket = serverSocket.accept(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String line = null; while ((line = bufferedReader.readLine()) != null && line.length()!=0){ System.out.println(line); } String str="我阿德啊";str+="\n"; PrintWriter printWriter = new PrintWriter(socket.getOutputStream()); printWriter.print(str); printWriter.flush(); bufferedReader.close(); printWriter.close(); } }}
public class SocketClient{ public static void main(String[] args) throws Exception{ Socket socket = new Socket("localhost", 2013); socket.setSoTimeout(60000); boolean status=socket.isBound(); System.out.println(status); String str="我是丑东尼啊";str+="\n"; PrintWriter printWriter = new PrintWriter(socket.getOutputStream(),true); printWriter.print(str); printWriter.flush(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); String line = null; while ((line = bufferedReader.readLine()) != null && line.length()!=0) { System.out.println(line); } printWriter.close(); bufferedReader.close(); socket.close(); }}
0 0
- 计算机网络1-计算机网络体系结构
- 计算机网络1
- 计算机网络1
- [1]-计算机网络
- 计算机网络1
- 计算机网络(1)
- 计算机网络.1
- 【计算机网络-1】【第一章】计算机网络体系结构
- 计算机网络(1)---计算机网络基础1
- 计算机网络——计算机网络概述(1)
- 计算机网络--计算机网络体系结构(1)
- 计算机网络教程摘记1
- 计算机网络总结(1)
- 复习计算机网络【1】
- 计算机网络课堂小结(1)
- 计算机网络(1)概述
- 计算机网络学习笔记1
- 计算机网络(1)
- 关于LinkedHashMap实现LRU缓存算法
- pinpoint源码分析--第一节 安装与说明
- SSM框架使用POI技术导出Excel表
- 面试题之用两个栈实现一个队列
- yahoo 财经接口中历史数据调用中碰到的一些问题
- [1]-计算机网络
- Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
- QSplitter在QTabWidget中使用
- 笔记 正则表达式RE -00 basic [need update]
- 地图坐标服务
- 5.2.4 邻接多重表
- Mac上配置Android开发环境
- 周报2016.09.05-2016.09.11(分页查询并放入非datagrid列表)
- cocos2d - JS 逐帧动画 (Animation Layer)