文件目录
  • 序言

  • TCP/IP 网络编程技术手记散集

  • 参照



序言

关键纪录TCPIP一些小手记
表明:

  • demo 根据 Linux。

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

快速入门

I/O 缓存

  • I/O 缓存在每一个 TCP tcp协议中独立存有。

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

  • 即便 关掉tcp协议也会再次传送輸出缓存中滞留的数据信息。

  • 关掉tcp协议将遗失键入缓存中的数据信息。

  • 本端启用一次 write(),对端很有可能要分几回 read() 才可以看完。

数据信息界限
TCP 是流式的的传输数据,信息沒有界限,必须网络层自身去界定信息界限。
UDP 是数据信息报传送,因此 协议书确保了一次只有接受一个数据信息报。
本人表述:数据信息界限意思是,数据信息是否会全自动切分,例如2个建筑结构持续存有一段运行内存中,那就是有界限的,建筑结构把其切分了。若把其数据信息拷到二维数组里边,那就是无边界的,由于分不清楚从哪里才算是分隔线

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。

评论(0条)

刀客源码 游客评论