3.缓冲区大小及限制
影响IP数据报大小的限制。
1)IPv4数据报,最大大小是65535.
2)硬件规定的MTU。以太网的MTU是1500字节、SLIP链路1006字节或296字节
3)路径MTU。两个主机之间路径中最小的MTU。1500字节常见的路径MTU
4)IP数据报>MTU,IPv4执行分片
5)IPv4,DF位被设置(不分片)。路由器接收到一个超过其外出链路MTU大小且设置了DF位的IPv4数据报时,它将产生一个ICMPv4"destination unreachable, fragmentation needed but DF bit set"出错消息。
DF位用于路径MTU发现。
6)最小重组缓冲区大小,IPv4为576字节
7)TCP有一个MSS,用于向对端TCP通告对端在每个分节中能发送的最大TCP数据量。
 
4.TCP输出
说明:
调用write调用
1.当某个应用进程调用write时,内核从该应用进程的缓冲区中复制所有数据到缩写的套接字的发送缓冲区。如果套接字发送缓冲区容纳不下,则应用进程将被投入睡眠;如果应用进程缓冲区中所有数据都赋值到套接字发送缓冲区,则返回成功。
2.写一个TCP套接字的write调用成功返回仅仅表示我们可以重新使用原来的应用进程缓冲区,并不表明对端的TCP或应用进程已接收到数据。
 
TCP处理数据
1.TCP以MSS大小的或更小的块把数据传递给IP,同时给每个数据块安上一个TCP首部以构成TCP分节。
2.IP给每个TCP分节安上一个IP首部以构成IP数据报,并按照其目的IP地址查找路由表项以确定外出接口,然后把数据报传递给相应的数据链路。
3.每个数据链路都有一个输出队列,如果该队列已满,那么新到的分组将被丢弃,并沿协议栈向上返回一个错误:从数据链路到IP,再从IP到TCP。TCP将注意到这个错误,并在以后某个时刻重传相应的分节。应用进程并不知道这种暂时的情况。
 

传输层(3)-缓冲区大小及限制、TCP输出的更多相关文章

  1. TCP/IP传输层,你懂多少?

    1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP协议?5. 为什么有了UDP,还需要TCP?6. 什么是TCP协议?7. 怎么理解协议 ...

  2. 传输层-Transport Layer(下):UDP与TCP报头解析、TCP滑动窗口、TCP拥塞控制详解

    第六章 传输层-Transport Layer(下) 上一篇文章对传输层的寻址方式.功能.以及流量控制方法做了简短的介绍,这一部分将介绍传输层最重要的两个实例:TCP协议和UDP协议,看一看之前描述的 ...

  3. 稳住,传输层里的TCP与UDP协议

    传输层协议 1.TCP协议介绍及报文格式 2.TCP三次握手三次挥手 3.UDP协议介绍 1.传输层有两个协议:TCP(传输控制协议)  UDP(用户数据协议) . TCP是面向连接的,可靠的进程到进 ...

  4. Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)

    catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...

  5. 传输层-Transport Layer(上):传输层的功能、三次握手与四次握手、最大-最小公平、AIMD加法递增乘法递减

    第六章 传输层-Transport Layer(上) 6.1传输层概述 在之前的几章内容中,我们自底向上的描述了计算机网络的各个层次,还描述了一些处于不同层次下的经典网络协议(如以太网.无线局域网.或 ...

  6. 从websocket协议出发,了解应用层协议,传输层协议,网络的7层协议

    其他关联连接 :TCP的三次握手(建立连接)和四次挥手(关闭连接) 1.websocket是全双工,不同于传统半双工通信 传统的Web应用中,浏览器与服务器交互都是半双工通信(但并不完全是半双工通信, ...

  7. TCP/IP入门(3) --传输层

    原文:http://blog.csdn.net/zjf280441589/article/category/1854365 传输层的主要功能 1)传输层为应用进程之间提供端到端的逻辑通信(网络层是为主 ...

  8. Android网络编程系列 一 TCP/IP协议族之传输层

    这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 传输层中有TCP协议与UDP协议. 1.UDP介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,U ...

  9. 传输层-TCP

    UDP协议提供了端到端之间的通讯,应用程序只需要在系统中监听一个端口,便可以进行网络通讯.随着计算机网络的发展,计算机网络所承载的业务越来越多,有些业务数据的传输需要具备可靠性,譬如我们在进行在线聊天 ...

随机推荐

  1. sql查询工程结算分包款转出

    总一 借工程结算负数 贷工程结算对冲问题 oralce使用聚合函数wmsys.wm_concat字段显示 clob :应该是,10.2.0.4以前,是varchar2,10.2.0.5开始,是CLOB ...

  2. 关于Spring

    Jetty默认采用NIO结束在处理I/O请求上更占优势,在处理静态资源时,性能较高.Tomcat默认采用BIO处理I/O请求,在处理静态资源时,性能较差. 依赖注入的意义:让组件依赖于抽象,当组件要与 ...

  3. OAF_开发系列13_实现OAF通过Vector动态查询设置(案例)

    20150715 Created By BaoXinjian

  4. OAF_开发系列03_实现OAF如何在保存前判断数据是否存在变更(案例)

    2014-06-26 Created By BaoXinjian

  5. JVM/JDK/JRE/IDE—区别(很经典)

    转载于 http://blog.csdn.net/jojo52013145/article/details/5801916 只是为了学习,转载没有别的目地,就是爱copy,copy一点点,进步一点点 ...

  6. Json序列化,date类型转换后前端显示错误的解决方案

    1.前台使用Jquery解决 (1)如果我们前台使用Jquery来解决这个问题的话,那么我们首先想到的是我们如何解析这个过程呢,当然我们就想到了自己写一个JavaScript脚本来解析这个过程,当然这 ...

  7. Mac 配置Charles抓https的包

    安装Charles 这个简单,略过... 打开Charles,在Menu选择Help > Install Charles CA SSL Certificate Keychain Access(钥 ...

  8. 一次完整的HTTP请求流程

    HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接: 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接, ...

  9. Python多线程join的用法

    import threading, time def Myjoin(): print 'hello world!' time.sleep(1) for i in range(5): t=threadi ...

  10. InfoPath中用户数据类型结构解析

    由于缺少对“用户”数据类型结构的明确定义,在设计InfoPath表达式时往往会耗用大量时间尝试,而且不一定能得到期望结果.下面对用户数据类型的结构进行详细解析. >> 什么是用户数据类型 ...