第5章 网络通信实战

第5章 网络通信实战

  1. 服务端:client 服务端:server

  2. 互联网上的数据包大小最大为1.5KB左右。

    数据通信的双方,发起第一个数据包的一方成为客户端。被动收到第一个数据包的一方成为服务端

  3. 端口号:区别不同的服务端的应用程序

  4. 套接字:socket

    套接字就是一个数字,调用socket函数时,就能生产(返回)这样一个数字。该数字具有唯一性,操作系统保证,该数字一旦被某个程序调用socket函数返回,就一直给这个程序用,直到该程序调用close函数关闭对该数字的调用,该数字才被系统回收(回收后如果该程序或其他程序有调用了socket函数,该函数可以给该程序或者其他程序复用)。只要该数字没有系统回收,不管哪个程序调用socket函数,都不可能返回一个和该数字一样的数字,这就是唯一性。

  5. 三次握手:客观端发起:(当客户端调用connect函数时发生)

    第一次握手:客户端发送SYN

    第二次握手:服务端收到SYN,发送SYN与ACK

    第三次握手:客户端接收到SYN与ACK后,发送ACK

    服务端收到ACK后,建立连接成功。

  6. 四次挥手:客户端与服务端都可以发起。设先发起的为First,后发起的为Last;

    第一次挥手:First发送FIN与ACK

    第二次挥手:Last接收FIN与ACK后,发送ACK

    第三次挥手:Last发送FIN与ACK

    第四次挥手:First发送ACK

  7. 相同的ip地址与端口只能被绑定(bind)一次

    1. TCP连接一共有11种状态:CLOSED \ LISTEN \ SYN_RCVD \ SYN_SENT \ ESTABLISHED \ FIN_WAIT_1 \ FIN_WAIT_2 \ TIME_WAIT \ CLOSE_WAIT \ LAST_ACK \ CLOSING
  8. epoll技术:epoll就是一种在Linux上使用的I/O多路复用并支持高并发的典型技术。

  9. epoll实现的三个函数:

    int epoll_create(int size);

    int epoll_ctl(int efpd, int op, int sockid, struct epoll_event *event) ;

    int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);

  10. LT是水平触发,属于低速模式,如果该事件没处理完,就会一直被触发。

ET是边缘触发,属于高速模式,该事件的通知只会出现1次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值