从Linux内核角度看TCP粘包
大家好,这里是物联网心球。今天我们来学习TCP粘包,TCP粘包是工作和面试中经常会碰到的问题。网上有一些资料也介绍过TCP粘包,但是这些资料更多的讲述的是TCP粘包的解决方案,并没有对问题的原因做详细的介绍。本文从内核的角度出发,将TCP粘 …
标签「Socket」下的全部文章,共 10 篇。 ← 返回全部文章

大家好,这里是物联网心球。今天我们来学习TCP粘包,TCP粘包是工作和面试中经常会碰到的问题。网上有一些资料也介绍过TCP粘包,但是这些资料更多的讲述的是TCP粘包的解决方案,并没有对问题的原因做详细的介绍。本文从内核的角度出发,将TCP粘 …

大家好,这里是物联网心球。 最近一直忙着写新书,本文同样是新书的一个小节。本文讨论的是网络编程中一个比较重要概念端口复用。 端口复用,即两个套接字绑定相同的IP和端口。注意这里说的两个套接字指的是两个TCP套接字或两个UDP套接字,而不是一 …

大家好,今天我们来聊一聊Linux零拷贝技术,今天我们以一个比较有代表性的技术sendfile系统调用为切入点,详细介绍一下零拷贝技术的原理。

前言:本文以TCP服务器为例,详细讲述TCP各种服务器模型的优缺点,以及TCP服务器模型的演变过程,揭开各种服务器模型的神秘面纱。学完本文,你总能挑选一款合适的TCP服务器。

前言: 最近一直在研究Linux IO模型,Linux IO模型是一个挺复杂的概念,分析Linux IO模型一定要注意方法,否则会在一个个概念中,迷失自我。

1.什么是数据链路层原始套接字? 数据链路层原始套接字是Linux内核提供的一种套接字,该套接字可以让用户程序直接发送和接收以太网数据,用户程序发送和接收的数据包必须是完整的以太网数据,内核不会再处理该数据而只是做一些简单的接收和发送工作 …

1.什么是原始套接字? 原始套接字(sock_raw)分为链路层原始套接字和网络层原始套接字,今天讨论的是网络层原始套接字,后续原始套接字指的是网络层原始套接字。网络层原始套接字提供了一个方法或者说工具,用户可以使用该工具完成IP层数据包 …

知识地图 1.TCP通信基本流程 图 1 2.示例程序 2.1 服务端程序 #include <stdio.h> #include <string.h> #include <unistd.h> …

知识地图 1.UDP通信基本流程 图 1 2.示例程序 2.1 服务端程序 #include <stdio.h> #include <string.h> #include <unistd.h> …

知识地图 1.套接字软件架构 图 1 通过domain地址域对套接字进行分类,分为:IPv4套接字,IPv6套接字,域套接字,数据链路套接字等。 通过type套接字类型和protocol协议类型进行子分类,如IPv4套接字分为:TCP套接字 …