Home > TCP/IP
  • 【分享】TCP/IP和Socket的区别

    要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。 对于网络编程,我们也言必称TCP/IP,似乎其它网络协议已经不存在了。对于TCP/IP,我们还知道TCP和UDP,前者可以保证数据的正确和可靠性,后者则允许数据丢失。最后,我们还知道,在建立连接前,必须知道对方的IP地址和端口号。除此,普通的程序员就不会知道...
    阅读全文 →
  • 【理论】详解tcp的半连接与完全连接队列

    摘星怪  /
     / 基础知识
    【写在前面】 前面转了一篇关于TCP全连接和半连接介绍的文章,感觉还是理解的不够深刻,网上又搜索了一篇,整篇文章都是详细解释这个知识点的,感觉不错,转载记录下。 【文章正文】 队列及参数 server端的半连接队列(syn队列) 在三次握手协议中,服务器维护一个半连接队列,该队列为每个客户端的SYN包开设一个条目(服务端在接收到SYN包的时候,就已经创建了request_sock结构,存储在半连接队列中),该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包(会进行第二次握手发送SYN+ACK 的包加...
    阅读全文 →
  • 【理论】关于TCP 半连接队列(syns)和全连接队列(accpet)

    阿里中间件团队博客  /
     / 基础知识
    【写在前面】 文章转载自阿里中间件团队博客,前半部分先介绍了一起由于tcp连接队列参数配置不当,导致的client端连接异常问题的解决过程,后半着重分析了TCP 半连接队列和全连接队列原理,文章写的不错,值得推荐。 【文章内容】 最近碰到一个client端连接异常问题,然后定位分析并查阅各种资料文章,对TCP连接队列有个深入的理解 查资料过程中发现没有文章把这两个队列以及怎么观察他们的指标说清楚,希望通过这篇文章能把他们说清楚一点 问题描述 JAVA的client和server,使用socket通信。server使用NIO。 1.间...
    阅读全文 →
  • 【理论】关于TCP/IP传输层的知识点

    java_mzd  /
     / 基础知识
    关于TCP/IP传输层的20个问题: 1. 传输层的主要功能是什么? 2. 传输层如何区分不同应用程序的数据流? 3. 传输层有哪些协议? 4. 什么是UDP协议? 5. 为什么有了UDP,还需要TCP? 6. 什么是TCP协议? 7. 怎么理解协议和程序? 8. TCP是否真的有链接? 9. 链接是如何建立的(逻辑上)? 10. 所谓的建立TCP链接开销很大,具体是指什么? 11. 三次握手的目的是什么? 12. TCP如何提供可靠性? 13. 什么是预期确认?什么是肯定确认与重新传输?哪些情况会重传? 14. TCP中,序列号和应答号有哪些作用? ...
    阅读全文 →