网络编程知识点

知识点1:分层结构

1、OSI七层模型和TCP四层模型

2、应用层:应用程序间沟通的层

例如:FTP(文件传输协议)、Telnet(远程登录协议)、HTTP(超文本传输协议)、TFTP(简单文件传输协议)等

3、传输层:提供进程间的数据传送服务

负责传送数据,提供应用程序端到端的逻辑通信

例如:TCP(传输控制流协议)、UDP(用户数据报协议)

4、网络层:提供基本的数据封包传送功能(数据报)

最大可能的让每个数据包都能够到达目的主机

例如:IP(网际协议)、ICMP(网际控制消息协议)、IGMP(网际组管理协议)等

路由器,三层交换机

5、链路层:负责数据帧的发送和接收(帧数据)

STP(生成树协议),RSTP(快速生成树协议)ARP(地址解析协议:IP->MAC),RARP(逆向地址解析协议:MAC—>IP)

网卡工作在链路层,二层交换机

6、物理层(bit流)

网络、光纤、双绞线,集线器(Hub)

注意:每层完成自己的任务,最终通过不同层次的处理完成数据的收发

知识点2:协议简介

1、IP协议特点

特点:

不可靠:它不能保证IP数据包能成功地到达它的目的地,仅提供尽力而为的传输服务

无连接:IP并不维护任何关于后续数据包的状态信息。每个数据包的处理是相互独立的。IP数据包可以不按发送顺序接收

IP数据包中含有发送它主机的IP地址(源地址)和接收它主机的IP地址(目的地址)

2、TCP协议简介

TCP是一种面向连接的,可靠的传输层通信协议,流式报文

功能:

提供不同主机上的进程间通信

特点

1、建立链接->使用链接->释放链接(虚电路)

2、TCP数据包中包含序号和确认序号

3、对包进行排序并检错,而损坏的包可以被重传

4、效率低,可靠性高

5、不支持0字节的报文

服务对象

需要高度可靠性且面向连接的服务

如HTTP、FTP、SMTP等

3、UDP协议

UDP是一种面向无连接的传输层通信协议,报文格式是用户数据报

功能:

提供不同主机上的进程间通信

特点

1、发送数据之前不需要建立链接

2、不对数据包的顺序进行检查

3、没有错误检测和重传机制

4、效率高,可靠性低

5、支持0字节的报文

服务对象

主要用于“查询—应答”的服务

如:NFS、NTP、DNS等

知识点3:MAC地址

MAC地址,用于标识网络设备,类似于身份证号,且理论上全球唯一

知识点4:IP地址

1、IP地址的组成

使用32bit,由{网络ID,主机ID}两部分组成

子网ID:IP地址中由子网掩码中1覆盖的连续位

主机ID:IP地址中由子网掩码中0覆盖的连续位

2、IP地址的分类

知识点5:回环地址

功能

主要是测试本机的网络配置,能ping通127.0.0.1说

明本机的网卡和IP协议安装都没有问题

注意

127.0.0.1~127.255.255.254中的任何地址都将回环到本地主机中

不属于任何一个有类别地址类,它代表设备的本地虚拟接口

知识点7:端口

TCP/IP协议采用端口标识通信的进程

用于区分一个系统里的多个进程

特点

1、对于同一个端口,在不同系统中对应着不同的进程

2、对于同一个系统,一个端口只能被一个进程拥有,一个进程可以有多个端口号

3、一个进程拥有一个端口后,传输层送到该端口的数据全部被该进程接收,同样,进程送交传输层的数据也通过该端口被送出

知识点八:字节序

端:低地址存放低字节,高地址存放高字节

大端:低地址存放高字节,高地址存放低字节

网络协议指定了通讯字节序—大端

#include<stdio.h>
int main(int argc, char const *argv[])
{
    /* code */
    union tmp
    {
        /* data */
        int a; //4个字节
        char ch; //1个字节
    }tmp;
    
    tmp.a=0x12345678;
    if(tmp.ch==0x78)
    {
        printf("小端模式\n");
    }
    else if(tmp.ch==0x12)
    {
        printf("大端模式\n");
    }
 
    return 0;
}

知识点九:UDP编程

面向无连接的用户数据报协议,在传输数据前不需要先建立连接;目地主机的运输层收到UDP报文后,不需要给出任何确认

UDP特点

1、相比TCP速度稍快些,效率高,可靠性低

2、简单的请求/应答应用程序可以使用UDP

3、对于海量数据传输不应该使用UDP

4、广播和多播应用必须使用UDP

5、支持发送0字节的报文

UDP应用

DNS(域名解析)、NFS(网络文件系统)、RTP(流媒体)等

知识点十:Wireshark

10.1 过滤IP
ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107
ip.src==192.168.1.107 || ip.dst==192.168.1.107
10.2 .过滤端口
tcp.port eq 80 // 不管端口是来源的还是目标的都显示
tcp.port == 80
tcp.port eq 2722
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80 // 只显tcp协议的目标端口80
tcp.srcport == 80 // 只显tcp协议的来源端口80
udp.port eq 15000
10.3 过滤协议
tcp udp arp icmp http smtp ftp dns
10.4 过滤MAC
eth.dst == A0:00:00:04:C5:84 // 过滤目标mac
eth.src eq A0:00:00:04:C5:84 // 过滤来源mac
eth.dst==A0:00:00:04:C5:84
eth.dst==A0-00-00-04-C5-84
eth.addr eq A0:00:00:04:C5:84 // 过滤来源MAC和目标MAC都等于A0:00:00:04:C5:84的

知识点十一:TCP概述

1、面向连接的流式协议;可靠、出错重传、且每收到一个数据都要给出相应的确认

2、通信之前需要建立链接

3、服务器被动链接,客户端是主动链接

4、不能传0字节的报文

5、不支持广播和多播

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值