网络编程基础知识

目录

1, OSI七层模型和TCP/IP协议四层模式

2,封装和拆包

3,因特网(互联网)地址(IP地址)

4,端口号

5, 字节序

6,socket


1, OSI七层模型和TCP/IP协议四层模式

2,封装和拆包

 3,因特网(互联网)地址(IP地址)

      IP地址也分为两个部分: 网络号 和 主机号 

    分两步:(1)看你是哪类的地址 (2)看 netmask (子网掩码)

    地址分类                             IP地址范围                     私有地址范围 
    A: 0+网络号(7)+主机号(24)         0.0.0.0~127.255.255.255       10.0.0.0 ~ 10.255.255.255
    B: 10+网络号(14)+主机号(16)         128.0.0.0~191.255.255.255     172.16.0.0~172.31.255.255
    C: 110+网络号(21)+主机号(8)         192.0.0.0~223.255.255.255   192.168.0.0~192.168.255.255
    D: 1110+多播组号(28)                224.0.0.0~239.255.255.255     232.0.0.0~232.255.255.255
    E: 11110 保留待用                   240.0.0.0~247.255.255.255     

4,端口号

 

    TCP和UDP都是采用无符号16bits的端口号来识别不同的应用程序的。
    IP地址只能唯一标识网络中的主机,但每台主机上并不是只跑一个网络应用程序,
    它可以跑多个网络应用程序,而且网络应用从传输层来看可以分为TCP应用和UDP应用。
    所以为了区分这些不同的网络应用,故提出了端口号的概念。
    
    注意: TCP端口号和UDP端口号是独立的。
    ==> 一台主机上的网络应用是由: IP地址 + 传输层协议(TCP/UDP) + 端口号 确定。
    端口号由 IANA(Internet Assigned Numbers Authority)管理:
    众所周知的端口号: 1~1023
        http(TCP应用,端口号: 80)
        ftp:(TCP应用,端口号: 21)
        tftp(UDP应用,端口号: 69)
        ...
        
    注册端口: 1024~49151
    动态或私有端口:  49152~65535

5, 字节序


    在CPU内部数据是存放在寄存器(16bits,32bits,64bits)中,分高bit位和低bit位
    但是内存却是按字节来编号的, 0x3000800,0x3000801 
    那么如果一个寄存器的数据要存放到内存中,该怎么存放呢?
        1) 大端(Big-Endian)模式: 数据的高字节存放在内存的低地址存储单元
        2) 小端(Little-Endian)模式: 数据的低字节存放到内存的低地址存储单元

        
    我们怎么知道我们自己的处理器采用的是大端模式还是小端模式呢?
    ==> 共用体
    
    网络字节序:
        网络字节序规定发送到网络上的数据统一采用大端模式的字节序。
        
        网络通信是在不同的主机之间进行通信,但我们发送一个整数的时候,如果都采用自己的字节序
        去处理就发生问题。
        因此所有的主机在进行网络通信时,都必须采用网络字节序。        


6,socket

   
    socket 即套接字文件,是一种网络编程接口,一种特殊的文件描述符,并不限于TCP/IP协议。
    ===> 独立于具体协议栈的网络编程接口,位于应用层与传输层之间。
    
    socket 类型:
    (1)SOCK_STREAM: 流式套接字
        主要针对的是 TCP传输层协议
    (2)SOCK_DGRAM: 数据报套接字
        主要针对的是 UDP传输层协议
    (3)SOCK_RAW: 原始套接字
        直接跳过传输层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

amireux512

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值