第4章:运输层分析.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章:运输层分析

//创建Socket套接字 ServerSock = socket(AF_INET,SOCK_STREAM,0); if (ServerSock==INVALID_SOCKET) return FALSE; dstserver_addr.sin_family = PF_INET; dstserver_addr.sin_port = htons(7016); dstserver_addr.sin_addr.s_addr = INADDR_ANY; //BIND Status = bind(ServerSock,(struct sockaddr far *)dstserver_addr,sizeof(dstserver_addr)); if (Status != 0) return FALSE; //LISTEN Status = listen(ServerSock,1); if (Status != 0) return FALSE; //ACCEPT int len = sizeof(dstserver_addr); NewSock = accept(ServerSock,(struct sockaddr far *)dstserver_addr,len); if (NewSock 0) {  closesocket(ServerSock);  return FALSE; } //Send Falg FALG = US_FLAG; send(NewSock,(char*)FALG,sizeof(FALG)+1,MSG_OOB); //Get Message length = recv(NewSock,(char*)iMsg,sizeof(iMsg)+1,0); if (length 0) {  //Close Sock  closesocket(NewSock);  closesocket(ServerSock);  return FALSE; } //GetMessageData if (iMsg 4500) {  send(NewSock,(char*)SysWidth,sizeof(SysWidth)+1,MSG_OOB);  send(NewSock,(char*)SysHeight,sizeof(SysHeight)+1,MSG_OOB); } 客户机端程序设计实现 clientSock = socket(AF_INET,SOCK_STREAM,0); if (clientSock 0) return FALSE; //建立连接 client.sin_family = PF_INET; client.sin_port = htons(7016); client.sin_addr.s_addr = inet_addr(client_address); …… msgsock = connect(clientSock,(struct sockaddr*)client,sizeof(client)); if (msgsock!=0)  return FALSE; * 最底层计算机通信网络提供的服务是不可靠的分组交付,所以网络协议的研究目标之一就是为数据流的可靠交付找出一般的解决方法。 蓝兵穿越白军防地是不可靠通信。 蓝军2不知道蓝军1是否收到确认,不能贸然行动。 即使采用三次握手释放连接,也会出现最后的确认丢失,应答TPDU丢失、应答及后续释放请求丢失的情况。 没有一个满意的解决问题的方法。 慢开始和拥塞避免算法的实现举例 当 cwnd = 12 时改为执行拥塞避免算法,拥塞窗口按按线性规律增长,每经过一个往返时延就增加一个 MSS 的大小。 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口 cwnd 进入拥塞避免 发生超时 指数规律增长 线性规律增长 ssthresh = 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的 ssthresh = 12 进入拥塞避免 乘法减小 (multiplicative decrease) “乘法减小“是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。 当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。 加法增大 (additive increase) “加法增大”是指执行拥塞避免算法后,当收到对所有报文段的确认就将拥塞窗口 cwnd增加一个 MSS 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。 必须强调指出 “拥塞避免”并非指完全能够避免

文档评论(0)

wbjsn + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档