tcp/ip详解2-chapter1
1.2 源代码旧式c函数定义
1.3 BSD版本变迁

1.4 应用编程接口
Berkeley socket 和由AT&T开发的TLI,被X/Open承认,也称XTL,XTL是TLI的有效超集
1.5UDP时间服务请求例程(未实现err_sys)
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFSIZE 150
int main()
{
struct sockaddr_in serv;
char buff[BUFFSIZE];
int sockfd, n;
if ((sockfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
printf("socket error");
bzero((char *) &serv, sizeof(serv));
serv.sin_family = AF_INET;
serv.sin_addr.s_addr = inet_addr("210.72.145.8");
serv.sin_port = htons(13);
if (sendto(sockfd, buff, BUFFSIZE, 0, (struct sockaddr *) &serv, sizeof(serv)) != BUFFSIZE)
printf("sendto error");
if ((n = recvfrom(sockfd, buff, BUFFSIZE, 0, (struct sockaddr *) NULL, (int *) NULL)) < 2)
printf("recvfrom error");
buff[n-2] = 0;
printf("%s\n", buff);
exit(0);
}
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFSIZE 150
int main()
{
struct sockaddr_in serv;
char buff[BUFFSIZE];
int sockfd, n;
if ((sockfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
printf("socket error");
bzero((char *) &serv, sizeof(serv));
serv.sin_family = AF_INET;
serv.sin_addr.s_addr = inet_addr("210.72.145.8");
serv.sin_port = htons(13);
if (sendto(sockfd, buff, BUFFSIZE, 0, (struct sockaddr *) &serv, sizeof(serv)) != BUFFSIZE)
printf("sendto error");
if ((n = recvfrom(sockfd, buff, BUFFSIZE, 0, (struct sockaddr *) NULL, (int *) NULL)) < 2)
printf("recvfrom error");
buff[n-2] = 0;
printf("%s\n", buff);
exit(0);
}
1.6 系统调用
unix man 2 含系统调用文档,以c定义的,标准C库有同名函数,man 3 则是标准库函数,可以选择调用系统调用。
1.7 4.4BSD(Net/3)网络实现
4.4BSD实现4种通信协议族,tcp/ip(互联网协议族),XNS(Xerox网络系统),OSI协议,Unix域协议(stream,dgram)

1.8 描述符

描述符是进程的进程表项中的一个数组的下标
1.9 mbuf和udp输出
插口层和协议层的区别在于m_type是MT_SONAME还是MT_DATA以及是带有16字节的sockaddr_in还是封装了ip和udp首部





1.10 输入处理


1.12 中断级别和并发


优先级高的中断阻塞低的中断,splimp和splnet函数提升cpu优先级,splx释放优先级;中断会影响会影响协议层和接口层共享的数据结构;
1.13 源代码组织

1.11 测试网络net140.252.x.x,域名.tuc.noao.edu

posted on 2015-12-30 17:06 Copernicus 阅读(150) 评论(0) 收藏 举报