网络基础知识

来源:互联网 发布:多媒体网络教学系统 编辑:程序博客网 时间:2024/06/06 12:34
www.rfc.org  ==>网路协议


tcp/ip 协议簇
应用层: HTTP TFTP FTP DNS ...

传输层: TCP UDP

网络层: IP ICMP RIP OSFP ...

物理层: ARP地址解析协议(ip->mac)  RARP
命令: arp -an  


TCP(传输控制协议):  有链接 可靠 实时==>手机通信


UDP(用户数据报协议): 无链接 不可靠 不实时 ==> 收发邮件






网络基础知识:

C类网络:
前三组 网络号 最后一组 主机号

110开头   110xxxxx


网络个数: 2^21   约209万


主机个数:2^8-2 (256-2)254

网络配置
ip: ifconfig ethx 192.x.x.x/24 up

网关: route add default gw x.x.x.x

DNS: vi /etc/resolv.conf ==> nameserver 8.8.8.8


网络接口:
1.socket 套接字    用于通信的接口函数


2.ip+port ip   用于定位主机

port 用于定位应用程序   1~65535  有TCP port 和 UDP port

       约定1-1000 为系统使用  


网络字节序 --> 大端存储


数字转换函数:





字符串转换函数:
       
#include <sys/socket.h>
        #include <netinet/in.h>
        #include <arpa/inet.h>

主机转网络 in_addr_t inet_addr(const char *cp);


        网络转主机 char *inet_ntoa(struct in_addr in);






1. C/S模式 ==> client/server


server: socket()  bind() listen() accept() recv()/send() close()

client: socket() bind() recv() send() close()

int socket(int domain, int type, int protocol);

参数: domain 地址族 PF_INET(AF_INET) 互联网程序
PF_UNIX(AF_UNIX) 单击程序


type 套接字类型 SOCK_STREAM 流式套接字 ->TCP

 SOCK_DGRAM用户数据报套接字 ->UDP





sread()  产生随机数
make clean;make  
两个命令放在一行

unlink() before bind()
文件传输  问题~~~
多路复用





广播
    setsockopt(sockfd,,,&)
组播
   
加入多播组
    astruct  ip_mreq mreq;
    mreq.imr_multiaddr.s_addr =inet_addr("224.0.0.128");
    mreq.imr_interface.s_addr =inet_addr("192.168.1.128");

    setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mreq,sizeof(mreq));


   
 







0 0