TCPIP协议知识总结.doc

上传人:laozhun 文档编号:2400460 上传时间:2023-02-17 格式:DOC 页数:5 大小:30.50KB
返回 下载 相关 举报
TCPIP协议知识总结.doc_第1页
第1页 / 共5页
TCPIP协议知识总结.doc_第2页
第2页 / 共5页
TCPIP协议知识总结.doc_第3页
第3页 / 共5页
TCPIP协议知识总结.doc_第4页
第4页 / 共5页
TCPIP协议知识总结.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《TCPIP协议知识总结.doc》由会员分享,可在线阅读,更多相关《TCPIP协议知识总结.doc(5页珍藏版)》请在三一办公上搜索。

1、/*0809 TCP/IP知识总结*/1.OSI 开放系统互连模型 (理想化的状态,在这个状态内给个层各司其职)总共有7层。应用层:FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP表示层: TIFF,GIF,JPEG(编解码),PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML 会话层:RPC,SQL,NFS,NetBIOS,names,AppleTalk,ASP,DECnet,SCP 传输层:TCP,UDP,SPX 网络层:IP(寻址方式),IPX(),AppleTalk (苹果自定义的协议) 数据链路层:Frame Relay,

2、HDLC, PPP(点对点), IEEE802.3/802.2, FDDI, ATM, IEEE 802.5/802.2 物理层:EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3, 802.5, FDDI, NRZI, NRZ, B8ZS 2.TCP/IP协议架构体系应用层:Telnet(超级终端,远程登录),FTP,SMTP,SNMP. 用户进行操作;传输层:TCP (重),UDP(重),UGP 获取数据;网络层: IP(地址标识符),ICMP(跳过传输层,ping命令.),IGMP主要用于寻找地址;数据链路层:ARP,R

3、ARP包括驱动和硬件; Ethernet(以太网);IE802.ng(无线)3.数据链路层:负责在不同的传输媒介上处理物理信号硬件细节,从而实现数据在不同媒介直接传送对应我们所说的驱动程序和网卡网络层:控制数据在网络中传输路径,即是数据传送给谁,包括地址标识和寻址方式管理协议:ICMP,ICMPv, IGMP, MLD传输层:提供两个主机之间的应用程序提供数据传输服务。比如数据应该交给哪个进程处理,当数据没有到达对方进程时,或者当数据堵塞时,该如何处理:流量控制当接收数据,如何判断数据的完整性:差错控制 会话层: 负责在网络中的两节点之间建立和维持通信。会话层的功能包括:建立通信链接,保持会话

4、过程通信链接的畅通,同步两个节点之间的对 话,决定通信是否被中断以及通信中断时决定从何处重新发送。你可能常常听到有人把会话层称作网络通信的“交通警察”当通过拨号向你的 I S P (因特网服务提供商)请求连接到因特网时, I S P 服务器上的会话层向你与你的P C 客户机上的会话层进行协商连接。若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接。会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限 表示层: 应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密与加密,

5、如系统口令的处理表示层协议还对图片和文件格式信息进行解码和编码3.对于分层而言,每一个分层都有相应的协议;并且个从上到下每一个分层的协议都是基于 下一个协议的,如果没有下一个分层的话,是没有任何意义的。4.用户数据的打包过程:EthernetIPTCPAPPuserEthernetheadheadheadheaddatatrailer以太网头5. 数据解析在以太网驱动解析时,以太网得到是IP 将数据包交给IP来解析,IP解析后,得到TCP,将数据包再交给TCP 来解析,当TCP解析后,查看端口,将数据包根据记录的端口号通过端口交给应用;6. 路由器的作用:路由: 选择最优最好的路径;对打包好的

6、数据进行发送;互换不同的网络(有线和无线);7.以太网与令牌网的区别本质是硬件不同,用户的网卡硬件决定;8.TCP 协议特点(先建立连接,在发送数据)(传输控制协议)面向连接的传输层协议;提供可靠的通信;SOCK_STREAM 流式套接字;以字符流(character stream)的形式来发送数据;但是,为了提高TCP传输效率,是将数据先存起来,当达到一定字节才按一定TCP数据报格式打包发送;在接受的过程需考虑数据边界。如果没有边界,则将产生PTC粘包;9.UDP协议特点(不可靠的无连接协议)(数据报协议)无论接收方是否在线,知道对方地址都进行数据发送。可进行高效率的传输;但是不能保证数据的

7、可靠性;SOCK_DGRAM 数据报套接字;无论多少个字节都打包成UDP数据报进行发送。10.socket 套接字特点a.插口的形式;b.socket 是成对出现的;c.socket 的类型:流式套接字SOCK_STREAM; 数据报套接字SOCK_DGRAM原始套接字 SOCK_RAWd.编程接口 socket() 函数;11.字节序:数据存放在内存的序列;大段模式:高位先存(左边为高位)小段模式:低位先存(右边为低位)在读取时,都是从低位开始读,但是在广域网中存储均是大端模式,因此在网络编程中,需将字节转换为大端;12.TCP|UDP端口号,端口号为short型的,个数为65535在1-1

8、024之间,端口号为众所周知的,不能申请占用;在1024-5000之间为系统占用,也不可申请占用;在500065535之间,用户可申请占用;在使用过程中,申请5000以上的;13.IP地址32位存储;24位为网络号;8位位主机号;但是在使用过程中,一般不占用0,1,255.这3个用做特殊用途;14.TCP |UDP 都存有1个进程向系统申请的端口号。15.对于端口和IP号,都需转换成大端的模式;16.字节序转换1.主机字节序到网络字节序u_long htonl(u_long hostlong);u_short htons(u_short short);2.网络字节序到主机字节序u_long n

9、tohl(u_long hostlong)u_short ntohs(u_short short)3. IP地址转换函数a.int inet_aton(const char*strptr, struct in_addr*addptr);b.char * inet_ntoa(struct in_addr addr)将用inet_aton 转换过的转换回来缺点,不能转换IPV6 的地址;将读出的东西存入struct in_addr addptr 中;struct in_addrin_addr_t s_addr;a.in_addr_t inet_addr(const char *strptr)缺点,

10、不能转换255.255.255.255 若强制转换转换后为-1;struct in_addr *addra.int pton(int af, const char *strptr, (void *)&addr)b.const char *inet_ntop(int af, const void *src,char *dst, socklen_t size);将用inet_pton 转换过的转换回来可转换任意类型的17.socket 函数函数原型: int socket(int domain, int type, int protocol);返回值:成功返回一个类似文件描述符的数字,也是从最小3

11、开始;错误返回-1参数解析:domain通信域 AF_INET 因特网通信域,跨机器进程间通信; AF_UNIX AF_LOCA 本机中进程与进程间通信; AF_INET6 因特网通讯,是IPV6类型;AF_NETLINK 用户进程与内核之间的通信;Type套接字类型; SOCK_STREAM 流式套接字 SOCK_DGRAM 数据报套接字SOCK_RAW 原始套接字Protocol (协议) 参数总是0;18.协议结构体通用的协议结构体 struct sockaddr sa_family_t sa_family; char sa_data14; Internet 协议结构体strcut so

12、caddr_inu_short sin_family; /通信域u_short sin_port;/端口号待添加的隐藏文字内容3struct in_addr sin_addr;/IP地址char sin_zero8;/8个没用的字节;用于与通用结构体大小保持一致;Internet address 结构体;struct in_addrin_addr_t s_addr;19.给结构体初始化;Memset(struct struct1 *strptr, char, sizeof(struct1);Bzero(struct struct2*strptr, sizeof(struct2);20.bind

13、 () 函数 绑定将地址结构体绑定到套接字(socket)描述符上;(1);地址结构体以包含IP和端口号;(2)想系统申请端口资源;(3)不能将同一个地址结构体绑定到同类型的套接字上;(4)对于发送端,可以不绑定,也可以绑定;如果不绑定,系统自动绑定;并且分配端口;但是对于接收端,必须要绑定;函数原型int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);返回值 成功返回0;不成功返回-1;参数解析;Sockfd 用socket 函数时返回的类似文件描述符的值;Addr 定义的struct sockaddr ad

14、dr;Addlen sockaddr_in 结构体的大小;21.listen()函数监听链接的套接字,将自己的套接字变成被动连接类型;函数原型 : int listen(int sockfd, int backlog);返回值: 成功 0;错误-1;参数解析:Sockfd socket 函数的返回的类似文件描述符;Backlog 等待建立链接的客户端数量: 一般设定5-10个;22.accept()函数等待对方主动链接;也就是等待对方的connect()主动链接;函数原型int accept(int sockfd, struct sockaddr *addr, socklen_t *addrl

15、en);返回值 成功返回一个新的类似文件描述符的东西;也就是用connect()激活的accept()的那个端口号;错误返回-1;参数解析;Sockfd 自己调用socket ()函数的返回的类似文件描述符Addr 定义一个结构体用于接收对方的地址结构;Addrlen 接收的结构体的大小;23.connect()函数主动链接服务器;等待accept()函数响应; 函数原型:int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);返回值:成功返回0;错误返回-1;参数解析;sockfd 自己调用socket()返回的类似文件描述符Addr 服务段自己的地址结构;Addrlen 自己的地址结构的长度;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号