博客专栏  >  编程语言   >  Linux 网络编程学习笔记

Linux 网络编程学习笔记

Linux 环境编程的延伸,主要对 tcp/ip 详解和 unix 网络编程这两本书进行解读,非常适合初学者。从理论到实践,让你搞清楚网络编程的每一个细节!

关注
226 已关注
113篇博文
  • 0-Linux 网络编程学习笔记导航

    学习交流群: Linux 学习交流群 610441700 一、网络协议基础

    2017-04-04 17:09
    2393
  • 112-封装 recvFromFlags

    在上一篇博文中,我们使用了 recvmsg 函数来获取标志位,但是每次填充 struct msg 结构体都相当费事,因此我们希望将这个过程封装成一个函数 recvFromFlags,一劳永逸。除了获取...

    2017-06-19 11:39
    233
  • 110-获取接口信息(二)

    1. 获取接口其它信息前面我们已经了解了 ioctl 的使用方法,现在我们希望获取更多的接口信息,最后将其封装成一个独立函数,名为 getIfiInfo.我们先来看看这个函数的演示示例,后面再给出详细...

    2017-06-09 09:34
    200
  • 111-UDP 数据报被截断

    1. 数据报被截断有时候我们有这样的需求,在 udp 数据报传输的过程中,如果对方发过来的数据报很大,而我们的接收缓冲区不足以容纳这么大的数据报,怎么办?此时 udp 数据报就会被截断,有没有一种办法...

    2017-06-09 11:09
    312
  • 108-网络接口

    1. 接口网卡,是让计算机通向外部世界的一扇大门。但是在计算机的世界里,一般这扇门称这“接口(Interface)”。接口是物理意义上的设备。在 Linux/Unix 中,我们使用 ifconfig ...

    2017-06-08 10:52
    221
  • 109-获取接口信息(一)

    1. 接口的其他信息上一篇文章简要的介绍了接口的名字和索引号的概念,我们也可以通过一些函数去获取、转换它们。可是,接口除了这些信息外,还有很多其它信息,比如接口上配置的 ip 地址啊,子网掩码啦,MT...

    2017-06-08 21:13
    210
  • 106-多播地址

    1. 多播地址多播地址,类似“QQ群号”,它是 D 类 IP 地址(224.0.0.0~239.255.255.255)。D 类 IP 地址的首 4 位总是 2 进制 1111 开头,因此,可用的范围...

    2017-06-04 17:35
    282
  • 107-使用多播的 UDP C/S 程序

    在掌握了多播的相关基础后,本文我们通过实例来演示如何让你的进程加入多播组。1. 程序路径本文使用的程序托管在 gitos 上:http://git.oschina.net/ivan_allen/unp...

    2017-06-06 19:34
    271
  • 105-多播(基础)

    1. 引言多播(或叫组播,Multicast)的出现,正是为了解决广播的不足。我们已经学会用 udp 发广播数据包,然而,对于不想接收广播数据包的主机来说,这就是一种骚扰。比如某主机接收到以太网帧(目...

    2017-06-03 17:45
    239
  • 104-信号引起的竞争错误

    1. 引言之前我们学习过使用 alarm 信号这种奇技淫巧来实现带超时的 IO 函数,一直以来,我们写的这种程序都带有一个隐含的 bug.举例来说,我们可能经常会写下面这样的代码:alarm(2); ...

    2017-06-01 20:47
    521
  • 103-使用广播的 UDP 回射客户端

    讲了好几篇有关广播的理论,是时候实践一下了。这一次,需要将之前写的 udp 回射服务器和客户端拿过来,稍作修改。你可以直接去 unp/program/template 这个模板文件夹下面把 udp 的...

    2017-05-31 16:10
    379
  • 102-受限广播地址

    这种也称之为本地广播地址,它的目标地址为 255.255.255.255. 意思是只在本网络进行广播,绝对不会被路由器转发。1. 规则如果一台主机发送的 IP 数据报目标地址为 255.255.255...

    2017-05-26 13:30
    317
  • 100-广播

    1. 引言在学习前面的 IPv4 地址的时候,你就已经注意到,有些地址被称之为广播地址(主机号全1),还有一类地址称为组播地址(D类地址)。从这一篇开始,我们需要做大量实验来学习广播。听起来很简单,但...

    2017-05-25 19:52
    276
  • 101-指向子网的广播

    我们将用三个实验来观察现象。1. 实验一1.1 网络拓扑图 图1 网络拓扑 1.2 实验步骤在主机 PC1 上 ping 广播地址 192.168.1.255,并在主机 PC1 上抓包。 ...

    2017-05-25 21:06
    316
  • 98-traceroute 程序

    traceroute 程序可以让我们看到 IP 数据报从一台主机传到另一台主机所经过的路由,该程序最早由 Van Jacobson 实现。当然我们不可能原汁原味的模仿一遍 traceroute 程序,...

    2017-05-23 12:12
    393
  • 99-IPv4 地址

    很久以前我们非常简单的讨论过 《IPv4 地址》,那时候是出于网络编程基础的需要,介绍了和 IP 地址相关的函数。这一次,我们来详细的讨论下 IP 地址的结构。1. IPv4 地址分类1981 年,标...

    2017-05-23 17:10
    357
  • 96-ICMP 协议(时间戳请求与应答)

    ICMP 时间戳请求允许系统向另一个系统查询当前的时间。1. ICMP 时间戳1.1 首部格式 图1 ICMP 时间戳请求与应答报文 它的 type 字段为 17(请求)或 18(应答),co...

    2017-05-21 18:10
    504
  • 97-ICMP 协议(端口不可达)

    ICMP 端口不可达是差错报文中的一种,它的类型(type)是 3,代码(code)也是 3.1. 差错报文首部格式 图1 差错报文首部 2. 实验 打开我们之前写的 ICMP 报文接收程序 ...

    2017-05-23 10:38
    575
  • 94-ICMP 协议(回显请求与应答)

    当 ICMP 首部 type = 8, code = 0,该 ICMP 是回显请求报文。当 type = 0, code = 0 时,是回显应答报文。1. 回显请求与应答报文1.1 首部格式 图...

    2017-05-18 15:01
    470
  • 95-PING 命令实现

    学完了 ICMP 回显请求与应答报文,就可以用它来实现我们平时使用的 PING 命令了。先来看看效果: 图1 自带的 ping 命令与我们自己实现的 1. 程序路径本文使用的程序托管在 git...

    2017-05-19 14:34
    328
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部