美文网首页
第13讲 | 套接字Socket:Talk is cheap,

第13讲 | 套接字Socket:Talk is cheap,

作者: carlclone | 来源:发表于2019-06-26 13:39 被阅读0次

知识点

1 分客户端和服务端
2 用网线类比socket
3 参数基本是网络层和传输层的
4 指定IP协议 V4 or V6 , AF_INET AF_INET6 , TCP是数据流 SOCK_STREAM , UDP是数据报 , SOCK_DGRAM
5 服务端bind (ip,port) , 为什么要bind ip , 因为一台机器可能有多张网咖
6 服务端有两个socket队列 , 一个是已建立连接的 , 一个是处于syn_rcvd的
7 服务端accept是什么时候调用?
8 客户端 conn(ip,port) , 会分配临时端口 , 服务端的 accept会返回新的socket , 和监听的socket不是同一个
9 通过write read 像文件流一样
10 socket时序图
11 socket就是一个文件流 , socket在linux中是文件形式存在的 , 也有文件描述符fd , 通过fd读写
12 每个进程都有一个fd数组 , fd是整数 , 指向这个数组的下标
13 数组里的内容是指针 , 指向文件 , 文件有inode , 真正的文件是保存在硬盘上 , socket的是在内存里的一个数据结构
14 什么是sk_buff
15 socket的发送队列和接收队列
16 socket队列图
17 udp也需要ip和port 也需要bind , 但是只有一个socket
18 调用sendto和recvfrom 发送 , 可以发给组播地址 , 就是一对多的
19 最基本的交互 : while死循环等待接收和发送 ,只能处理一个socket
20 最大连接数的计算 = 客户端最大ip数 2^32 * 最大端口数 2^16
21 四元组 ip port remote ip remot port , 只有remot ip 和remote port 在变化
22 tcp会被文件描述符数量限制 , ulimit配置上限 , 内存也会限制tcp数量
23 改进知识点19 , 多进程, 创建子进程 , 把socket交给子进程
24 fork创建子进程 , 返回0子进程 , 其他父进程
25 父进程创建子进程的多进程 结构图
26 改进知识点13 多线程 , 共用父进程资源
27 pthread_create 创建线程 , 文件描述符,进程空间是共享的 , 多了个引用而已
28 多线程的结构图
29 什么是C10K问题 , 1万个连接要1万个进程或线程 , 操作系统无法承受
30 解决知识点29 , 一个线程维护多个socket
31 fd_set是线程维护的socket集合 , 使用select去检查是否有更新
32 改进知识点31 , 从主动轮询变成被动通知 epoll , 突破数量限制
33 epoll注册callback函数 , 某个fd变化就会通知
34 一个epoll执行流程图
35 epoll的执行过程 , 没深入下去 , 用到了红黑树
36 epoll解决C10K

相关文章

  • 第13讲 | 套接字Socket:Talk is cheap,

    知识点 1 分客户端和服务端2 用网线类比socket3 参数基本是网络层和传输层的4 指定IP协议 V4 or ...

  • 09-套接字Socket

    本人在“极客时间”上购买了一套“趣谈网络协议”的课程,本文为该课程第13讲(第13讲 套接字Socket)的课程笔...

  • iOS 原生Socket和CocoaAsyncSocket框架的

    一、Socket到底是什么? 1、Socket原理 1.1、套接字(Socket)概念 套接字(Socket)是通...

  • day19

    socket套接字 socket又叫套接字,实现网络通信的python通过提供socket标准库来支持socket...

  • 2018-09-12 day18网络编程

    1.socket套接字 socket又叫套接字,就是进行数据通信两端。分为服务端套接字和客户端套接字 套接字编程:...

  • Socket

    Socket socket是套接字,多指传输层网络接口。 Socket和SocketServer是基于套接字的服务...

  • Python基础语法-3

    socket套接字使用流程:1.创建套接字2.使用套接字收/发数据3.关闭套接字 创建一个TCP socket 创...

  • Socket 网络编程(一)

    Socket Socket,又称“套接字”,应用程序通常通过“套接字”向网络发出请求或应答网络请求。 Socket...

  • CocoaAsyncSocket --Socket学习

    Socket理论 套接字(Socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信...

  • iOS 网络(三)-Socket

    一、Socket原理 1.套接字(Socket)概念 套接字(Socket)是通信的基石,是支持TCP/IP协议的...

网友评论

      本文标题:第13讲 | 套接字Socket:Talk is cheap,

      本文链接:https://www.haomeiwen.com/subject/amhccctx.html