- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机网络编程》复习题
基本概念
什么是协议
计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。
TCP/IP协议的体系结构
应用层 传输层 网络层 链路层
IP地址的结构、分类、
网络号 主机号 分类:A,B,C,D,E等五类地址,见下表
类别 类标识 地址范围 第一字节 网络地址长度 最大网络数 最大主机数 选用范围 A类 0 1~126 1字节 126大型网络 B类 10 128~191 2字节 16382 65534 中型网络 C类 110 192~223 3字节 2097150 254 小型网络 D类 1110 ~55 224~239 多点播送 E类 11110 240~247 保留地址
直接广播地址:主机号为全1的IP地址;
多播:
一对多的通信,一个源点发送到多个终点;
标识一个多播的标识符即为一个D类地址;
使用IGMP(网际组管理协议)协议,首部的协议字段值为2
多播地址只能用于目的地址,不能用于源地址;
对多播数据报不产生ICMP差错报文;
多播分两种:局域网范围的硬件多播;因特网范围的多播,因为大部分主机是通过局域网接入到因特网的,因此在多播的最后阶段,还是要在局域网范围内进行硬件多播。
多播(或称组播)IP地址,如何映射到MAC地址
组播IP地址,即D类地址,范围是~55;
MAC地址的前25位是固定的,后23位与IP地址的后23位相同
IP地址 1110 yyyy yxxx xxxx xxxx xxxx xxxx xxxx MAC地址 0000 0001 0000 0000 0101 1110 0xxx xxxx xxxx xxxx xxxx xxxx (16进制) 0 1 0 0 5 e
标识网络中的两个通信的进程或一条连接
五元组(协议,本地IP地址,本地端口号,远程IP地址,远程端口号)
socket(套接字)的三种协议类型及其应用场合
socket(int af, int type, int protocol)函数中,当第二个参数为AF_INET时,第三个参数type的值可以为:SOCK_STREAM(流式套接字)、SOCK_DGRAM(数据报套接字)、SOCK_RAW(原始套接字)协议类型 应用场合 socket函数中的protocol值 SOCK_STREAM TCP IPPROTO_TCP SOCK_DGRAM UDP IPPROTO_UDP SOCK_RAW raw sockets IPPROTO_ICMP 写代码创建socketTCP
SOCKET tcpSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
UDP
SOCKET udpSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
原始套接字SOCKET icmpSocket = socket(AF_INET, SOCK_RAM, IPPROTO_ICMP);
TCP的C/S通信模型
C/S通信模型
服务器端的两种的区别 IP地址 端口参数 方式1 INADDR_ANY 非0值 所有网卡都可接收连接,所有人都可连接 方式2 IP地址 非0值 某网卡接收,指定人群连接 函数bind原型为:int bind(SOCKET s, const struct sockaddr *name, int namelen)
代码如下:
SOCKET listenSocket;
struct sockaddr_in service;
listenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//绑定方式1:
service.sin_port = htons(9999);
service.sin_addr.s_addr = inet_addr(INADDR_ANY);
//绑定方式2:
service.sin_port = htons(9999);
service.sin_addr.s_addr = inet_addr();
bind(listenSocket, (SOCKADDR *) service, sizeof(service));
函数listen中第二个参数的含义
函数原型为:int listen(SOCKET s, int backlog);
第二个参数backlog:设置等待连接队列的最大长度,若设置为SOMAXCONN,则表示可用的最大长度。
在网络通信中,怎样传输一个字符串(可能含有汉字)
统一编码为UTF-8
程序设计
两个线程,
步骤:
WSAStartup(),初始化winsock
s
文档评论(0)