TCP/IP
文章平均质量分 87
尚先生的博客
这个作者很懒,什么都没留下…
展开
-
VxWorks网络协议栈初始化流程
< 在网络初始化时加载END和subEND,并在其中初始化IP协议栈,在TMS初始化时绑定IP到SubEND,单播路由协议初始化在TMS初始化中,根据MIB配置确定初始化哪个单播路由协议,RIP初始化可以在网络初始化时,OSPF初始化在TMS初始化中根据TMSMIB配置确定,END的IP地址在网络初始化时设置,SwEND的IP地址在网管配置时设置。一、在configAll.H中定义了所有定置系统配置的宏《INCLUDED SOFTWARE FACILITIES》:定义了基本组件;《EXCLUDE转载 2021-04-14 16:14:10 · 1218 阅读 · 0 评论 -
Linux下套接字详解(补充)---- TCP协议中的三次握手和四次挥手(图解)
原文链接:https://kernel.blog.csdn.net/article/details/50827776转载自TCP协议中的三次握手和四次挥手(图解)其他写的比较好的简析TCP的三次握手与四次分手TCP的三次握手(建立连接)和四次挥手(关闭连接)TCP协议三次握手过程分析TCP三次握手详解及释放连接过程TCP/IP 相关知识点与面试题集TCP/IP详解学习笔记(13)– TCP连接的建立与终止 序号:Seq序号,占32位,用来标识从TCP源端向目的.转载 2021-01-23 15:30:17 · 228 阅读 · 0 评论 -
Linux下套接字详解(十)---epoll模式下的IO多路复用服务器
原文链接:https://kernel.blog.csdn.net/article/details/509790901 epoll模型简介epoll可是当前在Linux下开发大规模并发网络程序的热门人选,epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread PerConnect转载 2021-01-23 15:26:16 · 167 阅读 · 1 评论 -
Linux下套接字详解(九)---poll模式下的IO多路复用服务器
原文链接:https://kernel.blog.csdn.net/article/details/50978320参照poll调用深入解析-从poll的实现来讲poll多路复用模型,很有深度poll多路复用poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论转载 2021-01-23 15:22:17 · 433 阅读 · 0 评论 -
Linux下套接字详解(八)----select模式下服务器(非阻塞,单进程+多进程+多线程)
原文链接:https://kernel.blog.csdn.net/article/details/50830768前言首先让我们回顾一下子我们之前都讲了那些最开始我们将了一下子Linux下套接字详解(一)—-TCP/UDP的区别与联系其中简要提到了三次握手与四次挥手,但是不是很详尽,于是我转载了一篇Linux下套接字详解(补充)—- TCP协议中的三次握手和四次挥手(图解)然后在第一篇博文中,我们讲解了socket的API接口,详情请见Linux下套接字详解(二)—-套接字Socke.转载 2021-01-23 15:19:25 · 467 阅读 · 0 评论 -
Linux下套接字详解(七)----线程池accept处理高并发connect
原文链接:https://kernel.blog.csdn.net/article/details/50828863前言服务器在调用listen和accept后,就会阻塞在accept函数上,accpet函数返回后循环调用accept函数等待客户的TCP连接。我们知道服务器段listen套接字能处理的连接数与监听队列的大小有关,如果这时候又大量的用户并发发起connec连接,那么在listen有队列上限(最大可接受TCP的连接数)的情况下,有多少个connect会成功了。试验证明,当连接数远远转载 2021-01-23 15:03:37 · 338 阅读 · 0 评论 -
Linux下套接字详解(六)----基于pthread的多线程的TCP套接字(阻塞/同步/并发)
原文链接:https://kernel.blog.csdn.net/article/details/50791958上节我们实现了一个简单的多进程的服务器程序,这节,我们服务器的框架不做修改,只是将其修改为一个多线程的服务器程序。直接上代码server#include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.h>#include <err转载 2021-01-23 14:42:15 · 191 阅读 · 1 评论 -
Linux下套接字详解(五)----基于fork多进程的TCP套接字(阻塞/同步/并发)
原文链接:https://kernel.blog.csdn.net/article/details/50615112简介一个简单的改进方案是在服务器端使用多线程(或多进程)。多线程(或多进程)的目的是让每个连接都拥有独立的线程(或进程),这样任何一个连接的阻塞都不会影响其他的连接。具体使用多进程还是多线程,并没有一个特定的模式。传统意义上,进程的开销要远远大于线程,所以如果需要同时为较多的客户机提供服务,则不推荐使用多进程;如果单个服务执行体需要消耗较多的CPU资源,譬如需要进行大规模或长时间的数据转载 2021-01-23 14:39:05 · 346 阅读 · 0 评论 -
Linux下套接字详解(四)----简单的TCP套接字应用(迭代型)
原文链接:https://kernel.blog.csdn.net/article/details/46357249前面我们已经将了TCP/UDP的基本知识,还说了并发服务器与迭代服务器的区别,我们大致了解大多数TCP服务器是并发的,大多数UDP服务器是迭代的,即我们在进行数据传送的时候,往往使用服务器与客户但之间无连接的UDP报文,但是在用户需要上传下载文件时,就会在客户端和服务器之间建立一条TCP连接,进行文件的传送那么我们下面就来实现一个简单的TCP服务器。TCP套接字编程模型图我们首.转载 2021-01-23 14:38:58 · 137 阅读 · 0 评论 -
Linux下套接字详解(三)----几种套接字I/O模型
原文链接:https://kernel.blog.csdn.net/article/details/46334337参考:网络编程–IO模型示例几种服务器端IO模型的简单介绍及实现背景知识阻塞和非阻塞对于一个套接字的 I/O通信,它会涉及到两个系统对象,一个是调用这个IO的进程或者线程,另一个就是系统内核。比如当一个读操作发生时,它会经历两个阶段:①等待数据准备 (Waiting for the data to be ready)②将数据从内核拷贝到进程中 (Copying th转载 2021-01-23 14:38:47 · 415 阅读 · 0 评论 -
Linux下套接字详解(二)----套接字Socket
原文链接:https://kernel.blog.csdn.net/article/details/46241975在前面我们讲了TCP/IP、TCP和UDP的一些基本知识,但是协议只有一套,而我们系统多个TCP连接或多个应用程序进程必须通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。套接口可以说是网络编程中一个非常重要的概念,linux以文件的形式实现套接口,与套接口相应的文件属于soc转载 2021-01-23 14:38:33 · 933 阅读 · 0 评论 -
Linux下套接字详解(一)----TCP/UDP的区别与联系
原文链接:https://kernel.blog.csdn.net/article/details/46240775TCP/IP简介TCP/IP协议叫做传输控制/网际协议,又叫网络通信协议TCP/IP虽然叫传输控制协议(TCP)和网际协议(IP),但是实际上是一组协议,包含ICMP, RIP, TELENET, FTP, SMTP, ARP, TFTP等。从协议分层模型方面来讲,TCP/IP协议集包括应用层,传输层,网络层,网络访问层。其中应用层包括:协议 名称 描述转载 2021-01-22 20:37:17 · 233 阅读 · 0 评论 -
《Linux内核TCP/IP 实现》:协议栈源码总纲二
1.启动分析图2.数据发送流程图各层主要函数以及位置功能说明:1)sock_write:初始化msghdr{}结构 net/socket.c2)sock_sendmsg:net/socket.c3)inet_sendmsg:net/ipv4/af_net.c4)tcp_sendmsg:申请sk_buff{}结构的空间,把msghdr{}结构中的数据填入sk_buff空间。net/ipv4/tcp.c5)tcp_send_skb:net/ipv4/tcp_out...转载 2020-07-28 14:58:53 · 1313 阅读 · 3 评论 -
《Linux内核TCP/IP 实现》:协议栈源码总纲一
一.linux内核网络栈代码的准备知识1.linux内核ipv4网络部分分层结构:BSD socket层:这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protocols.cINET socket层:BSD socket是个可以用于各种网络协议的接口,而当用于tcp/ip,即建立了AF_INET形式的socket时,还需要保留些额外的参数,于是就有了struct s..转载 2020-07-28 14:51:55 · 843 阅读 · 0 评论 -
协议栈流程
一、初始化流程二、分层数据结构三、socket 创建流程四、收发流程五、内核收包流程细化 (中断收包)六、应用层收包流程 七、UDP发包流程...转载 2020-07-28 14:42:22 · 520 阅读 · 0 评论