UNIX网络编程基础

OSI模型:

网络层由ipv4和ipv6处理

套接字提供顶上三层进入传输层的接口

 TCP传输控制协议:

TCP提供客户与服务器的连接

TCP能动态估算RTT

TCP通过给每个字节关联一个序列号来确定发送数据的排序

TCP提供流量控制

TCP是全双工通信

 TCP的连接和终止:三次握手四次挥手

常用TCP选项:

MSS:告知对端发送数据的最大分节大小

窗口规模选项:任意一端能够告知对端的最大窗口大小是65535

时间戳选项:防止失而复现的分组可能造成的数据损坏

TIME—WAIT状态:主动关闭的那一端经历了这个状态,最长为2MSL(最长分节生命时间其)

 端口号:用来区分进程

端口号的划分

套接字对:一个TCP的套接字对是定义该连接的两端的四元组:本地ip地址,本地tcp端口号,外地IP地址,外地tcp端口号,套接字对唯一的标识一个网络上的TCP连接

 TCP与并发服务器:

 缓冲区及限制:

TCP的输出

Udp的输出

SCTP的输出

TCP套接字编程有关函数:

Socket函数:

Socket成功时返回一个小的非负整数值,成为套接字描述符

Connect函数:

Bind函数:

把一个本地协议地址和套接字绑定

Listen函数:

仅由TCP服务器调用

两个队列之间的元素可以相互转换,表示不同的状态,backlog参数视为这两个队列总和的最大值,这个参数不能定义为0

Accept函数:

Fork和exec函数:

三个参数排列组合共有六个exec函数,其中只有execve函数调用的是内核函数,其他用的都是execve的库函数

 并发服务器:

就是fork一个子进程来服务每个客户

Close函数:

用来关闭套接字,终止TCP连接

 IO复用

IO模型:

进程不被投入睡眠

Select可以等待多个套接字描述符准备就绪

异步IO

Select函数:

Timeout参数指定等待的时间

假设使用32位整数,那这个数字第一个元素对应0-31位数字,第二个元素对应32-63

Select的中间三个参数都可以设为空指针

描述符就绪条件:

Select的最大描述符数:

Poll函数:

结构数组中的元素个数由参数nfds指定

Timeout参数指定poll函数返回前等待多久,是一个毫秒数的正值

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值