文档文件目录


前言

重要记录TCPIP一些小笔记
说明:

TCP/IP 网络编程技术技术性笔记散集

迅速新手入门
TCPIP-小笔记集合【网络编程】插图

I/O 缓存文件

  • I/O 缓存文件在每一个 TCP tcp协议中单独存在。

  • I/O 缓存文件在创建tcp协议时自动生成。

  • 就算 关闭tcp协议也会再度传输輸出缓存文件中残留的数据信息信息。

  • 关闭tcp协议将丢失输入缓存文件中的数据信息。

  • 本端开启一次 write(),对端很有可能要分几次 read() 才能够看了。

数据信息界限
TCP 是流式的的的传送数据,信息没有界限,务必传输层本身去定义信息界限。
UDP 是数据信息报传输,因而 协议书保证 了一次仅有接纳一个数据信息报。
自己描述:数据信息界限意思是,数据信息是不是会自动式分割,比如两个建筑构造不断存在一段运作运行内存中,那便是有界限的,建筑构造把其分割了。若把其数据信息拷贝到二维数组里面,那便是无边界的,因为搞不清从哪里才算得上分割线

UDP 网络编程技术技术性

  • UDP 是可以运用 bind() 涵数的,主要是配置本地IP和端口号。若不宜,则由系统软件软件随后分配。

  • UDP 是可以运用 connect() 涵数的,主要是配置远侧IP和端口号。若不运用,则每一次开启 sendto() 涵数时都必须设置,删除远侧IP和端口号,用时。

关闭I/O流

  • 开启 close() 后:

    • 输入缓存范围的信息被丢弃。

    • 輸出缓存范围的数据信息仍然能发送到目的端。

  • 开启 shutdown() 后:

    • 关闭输入流后,输入缓存范围的信息被丢弃。后面刚到的数据流分析剖析,会对其进行 ACK,接着丢弃。

    • 关闭輸出流后,輸出缓存范围的数据信息仍然能发送到目的端。

DNS

  • DNS重要依据UDP。

  • 目前全球仅有13台域名根网络服务器

  • 并沒有每条DNS查询都必须 到达根服务器的,查询是逐渐查询,每个全是有缓存表,该查缓存报表中的,没有直往报告。

  • 8.8.8.8是Google公司给与的完全免费DNS网站服务器的IP地址。

  • 还能够特殊本地的DNS网站服务器,只需能网站域名分析与IP就可以。

TCP:

  • MSS,比较大协议类型一段距离。在连接建立的情形下,即在消息推送SYN段的情形下,此外会将MSS发送给另一方(MSS可选项仅有产生在SYN段中!!!),告之对端他希望接纳的TCP协议类型段数据信息一部分比较大长度。

  • https://blog.csdn.NET/bobozai86/article/details/87372606

tcp协议可选项

  • tcp协议类型仅有在开创时管理决策,以后不能再变动

网站服务器快重启

  • 因为发现异常断开后原tcp协议进到 time-wait 状况(一般会维持数分钟),都还没有进到 close 状况,因而 其端口号等数据信息或者被占用的。服务器重启后没法一切正常的使用该端口。

  • 因而 采用 SO_REUSEADDR 设置。作用:

    1. 当有一个有一样本地地址和插口的socket1处于TIME_WAIT状况时,但你运作的程序的socket2要占据该具体地址和端口,你的体系就必须应用该可选项。

    2. SO_REUSEADDR允许同一port上运作同一网站服务器的好多个实例(好多个全过程)。但每一个实例关系的IP地址是不能一样的。在有几元网络接口或用IP Alias专业性的机器设备可以 检验这类情况。

    3. SO_REUSEADDR允许独立全过程关系一样的端口到好多个socket上,但每一个socket关系的ip具体地址不一样。这和2很相近,区别能看UNPv1。

    4. SO_REUSEADDR允许完全一致的详细位置和端口的不断关系。但这只用于UDP的多播,不用于TCP。