Socket

Socket函数是操作系统内核将“TCP/IP协议栈 + 底层网卡”抽象出来的一个个用户友好的函数,用于操纵本地的“TCP/IP协议栈+底层网卡”与远端的服务器/主机完成通信的任务。

题主提到了http是否可以不使用TCP socket,是否可以直接调用网卡的接口函数,自己将http请求打包好发给网卡?可以的,一点问题没有,但至少需要源IP、目的IP,否则如何跨越Internet到达对端?好,现在达成了共识,至少还需要IP地址,意味着应用程序发给网卡的数据至少有IP + http了。

但如何保证“IP + http”在传输过程中不丢、不乱序,如何知道对端一定是活着的(在线),IP是不够智能的,只会简单运送,无法解决丢包重传、重新排序、流量控制等复杂的动作,所以我们还需要在http里实现可靠传输,时刻盯着自己发出的包,超时就重传;对数据包编号,可以根据编号来对乱序的包重新排序,同学们,这些功能是否似曾相识?因为这就是TCP份内的事,既然已经有了这个简单易行的工具,为何要重开炉灶?另外TCP协议有N多程序猿的贡献,经历了全球亿万万用户的考验,性能、可靠性可能要比私有的实现更好、更快、更强!

socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信

参考资料

https://juejin.im/entry/591d41e00ce463006923fa11

http://www.cnblogs.com/dolphinX/p/3460545.html

http://blog.jobbole.com/110041/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.1 TCP/IP协议组 TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成 IP层负责...
    F麦子阅读 7,826评论 0 25
  • socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息...
    卢三石阅读 3,395评论 1 0
  • socket(套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,包含进行网络通信必须的五种信息...
    黄昏少年阅读 5,330评论 0 0
  • 今早Henry老师分享了《开心家族》这部电影,想不到一部电影被Henry老师挖掘出这么多可圈可点的引申含义,果然是...
    Silence9727阅读 3,077评论 0 2
  • 你问我现在这个时候吗?澳大利亚正好是秋天。 现在是五月,在北半球在是渐渐探出头的夏天的身影。 但是在南半球是慢慢袭...
    LuryYang阅读 2,498评论 0 2

友情链接更多精彩内容