Ps22Pdf

Size: px
Start display at page:

Download "Ps22Pdf"

Transcription

1 Linux/ U NIX L in u x

2 ( ) 158,,,,,, : 5, ( socket ) I/ O I/ O Inetd, U NIX/ L inux,,, UNIX/ Linux UNIX/ Linux 5, 5,, : Linux : : (, ) ht tp: / / w ww. tup. tsinghua. edu. cn : : : / 16: 20 5: 484 : : ISBN / T P : : 27 00

3 Lin ux,, Linux,, Linux,, W indows N T, Windows 95/ 98,,,, Linux W indows 95/ 98,,,,, Linux Linux, Int ernet,, Linux,,, Linux, Lin ux,,, Linux Linux,, Internet,,, Linux, Linux, Linux Linux, : 5 Linux,, : Linux T CP / IP U DP T CP/ IP Linux,, T CP/ IP 5, Linux,, Linux 6 Linu x, : Linux I/ O I/ O Inetd, Inetd, Linux ;,, Linux, Linux I/ O I/ O Linux,

4 Linux ; Inetd Linux Int ern et ; Linu x ; IP, Linux,, Lin ux,,,,,

5 1 Linux Linux TCP / IP Int ern et ( IP ) Int ern et ( ICMP) ( U DP ) ( T CP) Int ern et

6 4 TCP : : : : UDP recvfrom sendt o U DP : U DP : U DP U DP : U DP : U DP U DP U DP ( fork exec) ( daemon process) : in et d

7 recv send readv writ ev recvfrom sendt o recvmsg sendmsg : shutdown / : select get sockopt set sockopt IP T CP fcnt l ioctl ( pipe) V IPC ( memory mapped file) U N IX U N IX : T CP T CP

8 P IN G : ICMP IP H DRIN CL / / / / / : U DP : T CP : U DP T CP : T CP : T CP : T CP : I/ O T CP :

9 1 Linux 1.1 Linux Linux Linux, Linux, Linux Linux Linux, U NIX, : BSD System V, Linux Linux,,, Linux Ross Biro < biro@ yggdrasil.com > Ross WD 8003,, Linux Ross, Ross,,, Orest Zborowski < obz@ Kodak.COM > Linux BSD ( Socket),, Linux Linux, Linux, Laurence Culhane < holmes.demon.co.uk > SLIP Linux Linux, Ross, Fred van Kempen < waltje@ uwalt.nl.mugnet.org > Fred Linux,, NET 2, Fred, AX.25 Fred NET 2 Linux, 1

10 , F red,, 80 %, Ross, Fred Alan Cox < iialan@ > Fred NET 2,,,, Fred, Alan,, Linux NET 2D(ebugged),, Alan, NET 2 Linux :,, Linus, Alan, Alan Fred,,,, Fred Alan Linux Donald Becker < becker@cesdis.gsfc.nasa.gov >,, Linux 1.3., NET 3, Alan,, Alan AX.25 IPX,,, Linux NET 4 Linux,, Linux Linux Linux () ,, :,,,,,,, 1 1 : 2

11 1 1 - (1 ),, (2 ), (3 ) (4 ),, (5 ),, (6 ),, Linux,,, : (iterative server),,,,,, Linux ( daytime) (concurrent server),,,,,,, Linux, ( FT P ),,,, ;,,,,,, 3

12 1.3 -, - :, : # include < stdio.h > # include < stdlib.h > # include < errno.h > # include < string.h > # include < netdb.h > # include < sys/ types.h > # include < netinet/ in.h > # include < sys/ socket.h > # define PORT 3490 int main(int argc, char argv[]) int sockfd, nbytes; char buf[1024]; struct hostent he; struct sockaddr in srvaddr; if (argc!= 2) perror( usage: client hostname \ n ); exit(1); if ((he = gethostbyname(argv[1])) == NULL) perror( gethostbyname ); exit(1); if ((sockfd = socket(af INET, SOCK STREAM, 0)) == - 1) perror( create socket error ); exit(1); bzero(&srvaddr, sizeof(srvaddr)); srvaddr.sin family = AF INET; srvaddr.sin port = htons(port); srvaddr.sin addr = ((struct in addr )he -> h addr); if (connect(sockfd, (struct sockaddr )&srvaddr, \ sizeof(struct sockaddr)) == - 1) 4

13 exit(1); perror( connect error ); if ((nbytes = read(sockfd, buf, MAXDATASIZE)) == - 1) perror( read error ); exit(1); buf[nbytes] = \ 0 ; printf( read: % s,buf); close(sockfd);, : bash netclient localhost Hello, Network! Hello, Network!,, < sys/ socket.h > < netinet/ in.h > Internet IP,,, IP gethostbyname I P ( socket),,, socket socket open,, ;, IP Internet ( sockaddr in ) AF INET, Internet ; 3499, ; gethostbyname IP I P, I P htons, IP gethostbyname,,, connect Internet, 5

14 , read write, read,,, close 1.4, : # include < stdio.h > ; # include < stdlib.h > ; # include < errno.h > ; # include < string.h > ; # include < sys/ types.h > ; # include < netinet/ in.h > ; # include < sys/ socket.h > ; # include < sys/ wait.h > ; # define MYPORT 3490 # define BACKLOG 5 main() int sockfd, new fd; struct sockaddr in srvaddr; struct sockaddr in cliaddr; int sin size; if ((sockfd = socket(af INET, SOCK STREAM, 0)) == - 1) perror( socket error ); exit(1); bzero(&srvaddr, sizeof(srvaddr)); srvaddr.sin family = AF INET; srvaddr.sin port = htons(myport); srvaddr.sin addr.s addr = htonl(inaddr ANY); if (bind(sockfd, (struct sockaddr )&srvaddr, sizeof(struct sockaddr)) == - 1) perror( bind error ); exit(1); 6

15 if (listen(sockfd, BACKLOG) == - 1) perror( listen error ); exit(1); for (;;) sin size = sizeof(struct sockaddr in); if ((new fd = accept(sockfd, (struct sockaddr )&cliaddr, &sin size)) == - 1) perror( accept error ); continue; printf( server: got connection from % s \ n, inet ntoa(cliaddr.sin addr)); if (write(new fd, Hello, Network! \ n, 14) == - 1) perror( write error ); close(new fd); close(sockfd);,, < sys/ socket.h > socket bind, (, ), AF INET, 3490( ), IP INADDR ANY, bind I P (listening socket),, listen listen, listen BACKLOG ( unaccepted) 3 socket, bind listen, TCP 3, TCP, accept, accept, accept ( new fd) 7

16 ,, close,,,,,, 1.5,,,, 1. ifconfig ifconfig Linux, : bash ifconfig eth0 eth0 Linux encap:10mbps Ethernet Hwaddr 00:A0:24:9C:43:34 inet addr: Bcast: Mask: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric;1 RX packets: errors:0 dropped:0 overruns:0 TX packets: errors:0 dropped:0 overruns:0 Interrupt: 10 Base address:0x300 00: A0: 24: 9C: 43 : 34, I P , , , MULTICAST 2. netstat netstat netstat,, - a - r- n,, IP : bash netstat - rn 8

17 Routing tables Destination Gateway Flags Refs Use MT U Netif Expire Default UG et h0 127/ U lo / U et h0 - i [iface] ( ): bash netstat - ni Kernel Interface table Iface MT U Met RX RX RX RX TX TX TX TX Flags OK ERR DRP OVRP OK ERR DRP OVR lo BLRU et h BRU netstat, netstat, 3. ping ping ping ICMP, ping : bash ping PING ( ): 56 data bytes 64 bytes from : icmp seq = 0 ttl = 255 time = 0.316ms 64 bytes from : icmp seq = 1 ttl = 255 time = 0.315ms 64 bytes from : icmp seq = 2 ttl = 255 time = 0.316ms 64 bytes from : icmp seq = 3 ttl = 255 time = 0.317ms ping : PING ( ): 56 data bytes Host unreachable ,, ping ping,, IP 9

18 4. telnet telnet Internet,,, : bash telnet localhost 3490 Hello, Network!, telnet, 5. tcpdump tcpdump RedHat 6.0, Linux, ftp:/ / ftp.ee.lbl.gov/ ( datalink packet), : bash tcpdump (udp and port daytime) or icmp 13 ( daytime ) UDP ICMP : bash tcpdump tcp and port 80 adn tcp[13:1]& 2!= 0 80 (HT TP ), SYN ( SYN TCP 13,, 2) TCP tcpdump, TCP/ I P tcpdump, tcpdump 6.,,,, 1.6 Linux, 10

19 , Linux -,, TCP,, 11

20 2 TCP/ IP 2.1,,,, TCP/ IP 2 1 Internet IP TCP UDP ICMP, I P ICMP, ; UDP TCP,, 2 1 TCP/ IP 2.2 Internet (IP) 2 1, IP TCP/ IP UDP TCP, IP, 12

21 IP, I P,,, IP I P IP, ; IP I P : 1. IP 2 2 IP 2 2 IP IPv4 4I P,, I Pv6 IP, 4 (32 ) IP 20, I P IP, 5, I P, 16, I P I P, IP (Don t F ragment, DF )( More Fragment, MF ) I P 13

22 , 1 0, IP I P, TCP UDP ( Header Checksum) I P IP I P I P I P, 2. IP Internet IP, I P 32 IP 4, IP IP A ( 2 24 ), B (2 16 ), C (2 8 ), D, IP, 4, IP : IP,, I P,, 0,,, I P ; 1,, IP 1,, 1, ; I P , I P 4, Internet,,, B 14

23 , C,,, , IP I P, I P B ,,, 10, 6, 1024, 64 ;, 6, 10, 64, 1024, IP : IP 32, 1 IP ( ), 0 I P : , 9 0, I P 23 I P 1,, 1, 0 IP,, : B I P : , 7, : , I P : , : ,, IP, IP IP,,, I P 2.3 Internet (ICMP) Internet Internet I P, IP, ICMP I P, IP, IP ICMP, ICMP, ICMP I P 2 5 ICMP 15

24 2 5 ICMP : ICMP : ICMP : ICMP ICMP :, : ( 1 ) ; ( 2) ; ( 3), ICM P, : I P ( TTL) 1, 0, I P, ICMP I P ECHO ECHO ECHO ICMP, ICMP, ECHO ICMP ICMP 2.4 (UDP) UDP IP, I P, UDP,, 16

25 UDP UDP : UDP, : UDP, : UDP, : UDP,, 0 UDP,, UDP,,, ( well known), 1024, UDP,,,, ;,,, UDP, UDP UDP,,, Linux, UDP, UDP, UDP UDP, I P, UDP IP UDP,, UDP, UDP, ICMP ;, UDP, 17

26 2.5 (TCP), IP UDP,, IP, ( TCP ),, 1. TCP TCP,,, TCP TCP TCP,,,, TCP,, TCP I P,,,, TCP :, TCP RT T( Round Trip Time),, TCP,,, TCP R TT,, Internet, TCP TCP,, TCP, TCP,,, 1048, TCP 67200, TCP 1024, TCP, , , TCP IP IP, TCP TCP, :,,,, 18

27 ,,,,,, TCP TCP TCP, ( ) TCP :, ;, :,, TCP, TCP, TCP : TCP : TCP : :, 1 : 4 ( 32 ) TCP, 20, TCP, U RG( urgent):, 1 ACK(acknowledge):, 1 PSH( push):, 1,,, RST( reset): TCP, TCP,, TCP 3 TCP RST : (1 ) SYN ; ( 2 ) TCP ; ( 3) TCP, RST TCP 19

28 2 7 TCP, SYN( synchronize) : TCP TCP, TCP, SYN, SYN, TCP FIN(finish):, TCP,,, TCP, FIN,, FIN FIN, (16 ) : : TCP : ( URG), TCP,, : TCP : (1 ) ( Maxi mum Segment Size, MSS), SY N, TCP,, ; (2 ),, 20

29 65535,,,, TCP, N, 2 N 3. TCP TCP IP, I P,, TCP 3 : socket bind listen,, connect connect TCP TCP SYN, TCP SYN, SYN, SYN TCP SYN, SYN, TCP SYN, TCP 2 8 TCP 3 3 (a), TCP SYN, X, TCP SYN, Y, SYN ( X + 1), SYN,,, 3 ( b),, TCP, SYN, (a) (c), SY N TCP ( I P, ) TCP SYN, SYN, Y, SYN (X + 1), TCP,, RST, SYN, RST TCP RST, TCP 3,, 4. TCP TCP, TCP,, TCP 21

30 2 8 TCP 3 TCP 4 : (1 ),, ( close )close TCP FIN (2 ),, F IN, TCP FIN FIN ( EOF ), F IN,, ( ) (3 ),, close close TCP F IN (4 ) TCP F IN, F IN, TCP 2 9, : TCP F IN, X, TCP FIN,, TCP,,,, TCP TCP F IN, Y TCP F IN,, TCP,, TCP 22

31 2 9 TCP 4, F IN TCP FIN F IN,, F IN,,, TCP,, FT P,, HT TP, 5. TCP TCP, : CLOSED:, LISTEN : SYN RCVD:, SYN SENT: ESTABLISHED:, F IN WAIT 1 :, F IN WAIT 2 :, TIME WAIT :, CLOSING: CLOSE WAIT : LAST ACK :,, TCP, 23

32 2 10 TCP CLOSED : TCP ( connect), TCP SYN, SYN SENT SYN + ACK, TCP ACK, 3, ESTABLISHED,, close, TCP F IN, F IN WAI T 1, ACK ACK, FIN WAIT 2,, ( FIN ), TCP FIN, TIME WAIT, TCP TIME WAIT,, TCP : listen, TCP LISTEN, SYN, TCP, SYN + ACK, SYN RCVD SYN, 3, ESTABLISHED,, F IN TCP F IN, CLOSE WAIT,, close, TCP F IN, LAST ACK,, TCP 24

33 6. TCP TCP,, TCP TCP - (1 ) TCP TCP SYN TCP SYN SENT TCP SYN, X, ( MSS)1460 (2 ) SYN TCP SYN, SYN, SYN ( X + 1 ) TCP LISTEN SYN RCVD TCP SYN, Y, MSS 1024TCP, MSS, MSS 1024 (3 ) SYN TCP SYN, SYN ( Y + 1 )TCP ESTABLISHED, (4 ) 25

34 ( Y + 1 ), TCP ESTAB LISHED,, (5 ) write (6 ) read (7 ) TCP,, write (8 ) read, TCP (9 ) close, TCP TCP FIN, FIN WAIT 1, FIN (10) TCP F IN, TCP CLOSE WAIT, TCP 0 (11) FIN TCP TCP, FIN WAIT 2, (12) close, TCP TCP FIN, LAST ACK, FIN (13) TCP F IN, TCP TIME WAIT, ( MSL), TCP (14) FIN TCP TCP TCP CLOSEDTCP, 7. TCP I P, TCP, 26

35 TCP ( port),, (well known), F T P 21 HTT P 80, 1024, TCP, 4 : IP IP I P ( socket) ( socket pair ), TCP ( ) A B, ( ), HTT P ( 80 ) : ( : 80 ),, , ( :3905) ( : 3810 ), ( : 80 : : :3905) ( :80: : : 3810 ), 8. TIME WAIT TIME WAIT TCP,,,, ( Maximum Segment Lifetime, MSL) TIME WAIT : TCP : ( F IN ), IP,,, F IN TCP, F IN,, TCP RST, RST TCP,, TCP TIME WAIT, TCP, FIN,,, :, ( ),, :, 27

36 ,,,, TCP,,, TCP TIME WAIT,, 2.6 Internet TCP, echo discard daytime chargen time / etc/ services Internet TCP UDP echo 7 7 discard 9 9 daytime TCP, chargen ; UDP time inetd, telnet, : bash telnet echo Trying Connected to Escape character is ^]. Who am I? Who am I? ^] telnet > close Connection closed., netstat 2.7 TCP/ IP : IP ICM P UDP TCP IP, IP 28 ICMP IP

37 UDP UDP UDP TCP TCP TCP,, TCP 3, TCP, / etc/ services 29

38 3 3.1 Internet TCP/ I P, Linux ( socket ) Linux socket connect bind listen accept closegetsockname getpeername, IP, Internet,, 3.2 Linux,,, Linux, < linux/ socket.h > : struct sockaddr unsigned short sa family; /, AF xxx / char sa data[14]; / 14 / ; sa family, TCP/ IP AF INET ; sa data,, sockaddr TCP/ IP sockaddr in, < linux/ in.h > : struct in addr u32 s addr; / unsigned long / 30

39 ; struct sockaddr in short int sin family;/, AF xxx / unsigned short int sin port; / / struct in addr sin addr; / Internet / / struct sockaddr, / unsigned char pad[ SOCK SIZE - sizeof(short int) - sizeof(unsigned short int) - sizeof(struct in addr)]; ; # define sin zero pad / BSD / : (1 ) < linux/ socket.h > < linux/ in.h > Linux,,, < sys/ socket.h > < netinet/ in.h >, (2 ) sockaddr in TCP UDP sin port I P sin addr (3 ) 32 IP, servaddr Internet, servaddr.sin addr servaddr.sin addr.s addr IP, ( struct in addr), ( unsigned long) IP,, (4 ) sin zero, ( struct sockaddr), 0 sockaddr in (5 ) TCP,, I P, sockaddr in IP, I P : # include < sys/ socket.h > # include < netinet/ in.h > # include < arpa/ inet.h > int inet aton(const char cp, struct in addr inp); unsigned long int inet addr(const char cp); char inet ntoa(struct in addr in); 3 I P 32 IP, IP , 31

40 IP C0A8000Ainet aton I P IP, 1, 0, I P inp inet addr inet aton,, INADDR NONEinet addr, inet aton inet addr inet addr INAD DR NONE ,32 1 (- 1 )inet ntoa 32 IP IP, 3.3, Intel PC RISC 16 A103 2, A1, 03 :, 3 1 (a) ;, 3 1( b)little endian, Intel ; big endian, RISC 3 1,, Internet big endiantcp IP Linux 4 : # include < netinet/ in.h > unsigned long int htonl(unsigned long int hostlong); unsigned short int htons(unsigned short int hostshort); unsigned long int ntohl(unsigned long int netlong); unsigned short int ntohs(unsigned short int netshort); 4 h host, n net work, s short, l longshort 16, long 32,,,, 32

41 3.4,, C Linux, b( byte), BSD ; mem( ), ANSI C b : # include < strings.h > void bzero(void s, int n); void bcopy(const void src, void dest, int n); int bcmp(const void s1, const void s2, int n); bzero s n 0, : bzero(&servaddr, sizeof(servaddr)); bcopy src dest bcmp s1 s2 n, 0, mem : # include < string.h > void memset(void s, int c, size t n); void memcpy(void dest, const void src, size t n); int memcmp(const void s1, const void s2, size t n); memset s n c memcpy bcopy, : bcopy src dest, memcpy, bcopymemcmp s1 s2 n, 0, 3.5 TCP, TCP 3 2 TCP, TCP : socket, bind, listen 33

42 3 2 TCP - (listening socket), accept,, socket, connect, 1. socket socket : # include < sys/ types.h > # include < sys/ socket.h > int socket(int domain, int type, int protocol); domain ; type ; proto col socket,,, ;, - 1, errno Linux (AP I), 34

43 , TCP/ IP UNIX domain domain : AF UNIX U NIX, AF INET Internet ( TCP/ IP ) AF ISO ISO type, : SOCK STREAM, SOCK DGRAM, SOCK RAW, Internet, IP protocol 0,, Internet TCP, UDP, protocol,, ICMP IGMP TCP : sockfd = socket(af INET, SOCK STREAM, 0); if (sockfd < 0) fprintf(stderr, socket error: % s \ n, strerror(errno)); exit(1); Linux :,, TCP TCP 2. connect connect : # include < sys/ types.h > # include < sys/ socket.h > int connect(int sockfd, struct sockaddr servaddr, int addrlen); sockfd socket ; servaddr, IP ; addrlen connect, 0; - 1, errno : ETIMEOUT ECONNREF USED EHOSTUNREACH ENETUNREACH connect, TCP : bzero(&servaddr, sizeof(servaddr)); 35

44 servaddr.sin family = AF INET; servaddr.sin port = htons(server PORT); if (inet aton( , &servaddr.sin addr) < 0) fprintf(stderr, Inet aton error \ n ); exit(1); if (connect(sockfd, (struct sockaddr )&servaddr, sizeof(servaddr)) < 0) fprintf(stderr, connect error: % s, strerror(errno)); exit(1); ( IP ), , IP connect TCP 3 ( 2 ), : TCP SYN,, ETIMEOUT TCP SYN, SY N,, TCP RST,, ECON NRE FUSED SYN, TCP RST, TCP RS T, SYN, SYN ICMP,, EHOSTU NREACH ENETU NREACH TCP ICM P,, SYN,, TCP ICMP, connect, TCP SYN, TCP CLOSED SYN SENT, SY N, TCP ESTABLISHED, connect, close, con nect 3. bind 36 bind :

45 # include < sys/ types.h > # include < sys/ socket.h > int bind(int sockfd, struct sockaddr myaddr, int addrlen); sockfd socket ; myaddr ; ad drlen bind, 0;, - 1, errno EADDRINUSER bind, bind : bzero(&myaddr, sizeof(myaddr)); myaddr.sin family = AF INET; myaddr.sin port = htons(port); myaddr.sin addr.s addr = htonl(inaddr ANY); if (bind(sockfd, (struct sockaddr )&myaddr, sizeof(myaddr)) < 0) fprintf(stderr, Bind to port % d error \ n, PORT); exit(1);, IP INADDR ANY IP IP INADDR ANY IP IP IP IP I P, 5 : (1 ), I P bind, IP INADDR ANY, (2 ) IP bind, IP IP, I P,,, (3 ) 37

46 ,, connect TCP,, IP,, Linux rlogin, rlogin,, bind (4 ) IP (5 ) IP,,,, : (1 ) ( HTT P ) TIME WAIT ( 2 ),,, TIME WAIT,,, con nect, ECONNREFUSED (2 ) ( F TP ) TIME WAIT,, TIME WAIT,,,, bind, EADDRIN USE 4. listen listen (listening socket) : # include < sys/ socket.h > int listen(int sockfd, int backlog); sockfd ; backlog listen, 0; - 1 listen, listen : (1 ) socket, ( connect),, listen : TCP, listen, TCP CLOSED LISTEN 38 (2 ) TCP, listen

47 , socket, bind, listen 3 TCP backlog, TCP : (1 ) 3 TCP TCP SYN,, SYN SYN (ACK + SYN ), SYN, SYN RCVD, SYN, (2 ) 3, ( accept )TCP SYN, 3, TCP, ESTABLISHED, accept , 4,,,

48 TCP SYN,, SYN SYN, SYN,, TCP accept, backlog, ( unaccepted ) SY N,, TCP SYN SYN, TCP RS T, : (1 ) TCP RST, connect, RST,,, (2 ) :, accept, TCP, SYN,, TCP, 3,,, ETIME OUT, telnet : # include < sys/ socket.h > # include < sys/ types.h > # include < netinet/ in.h > int main() int sockfd; struct sockaddr in servaddr; if ((sockfd = socket(af INET, SOCK STREAM, 0)) < 0) perror( socket error.\ n ); exit(1); bzero(&servaddr, sizeof(servaddr)); servaddr.sin family = AF INET; servaddr.sin port = htons(8080); servaddr.sin addr.s addr = htonl(inaddr ANY); if (bind(sockfd, (struct sockaddr )&servaddr, sizeof(servaddr)) < 0) perror( bind port 8080 error.\ n ); exit(1); 40

49 listen(sockfd, 2); for (;;) : bash telnet localhost 8080 & bash telnet localhost 8080 & bash telnet localhost 8080 netstat, : bash netstat - a grep 8080 tcp 0 0 :8080 : LISTEN tcp 0 0 localhost:5301 localhost:8080 tcp 0 0 localhost:8080 localhost:5301 tcp 0 0 localhost:5302 localhost:8080 tcp 0 0 localhost:8080 localhost:5302 tcp 0 0 localhost:5303 localhost:8080 ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED SYN SENT,,, telnet, SYN,, telnet, 5. accept accept, : # include < sys/ socket.h > int accept(int sockfd, struct sockaddr addr, int addrlen); sockfd ; addr Internet ; addrlen accept, 3 :, ; addr ; addrlen, addr addrlen N ULLaccept, - 1 accept TCP,, 3, TCP, TCP,, accept, accept (connected socket) :, 41

50 ,, ; ( accepted), TCP,,,, accept,,, EINTR, accept 6. close close close close : # include < unistd.h > int close(int sockfd); sockfd close, 0;, - 1 close close : close 1, 0,, close ; 0,,, close : ( TCP CLOSED ), close,, TCP TCP,, F IN,, TCP, TCP 7. read write read write : int read(int fd, char buf, int len); int write(int fd, char buf, int len); fd ; read buf, write buf ; len read, ;, - 1 write, ;, - 1 TCP,,, TCP : TCP, ;, TCP 42

51 , read write read :, read ; read, read len ; read, read,, len ;, read, write :, write ; write len, write,, write,,, : (1 ) read,, 0 (2 ) TCP FIN F IN, read 0, 0, (3 ) TCP RST RST, read, ECON NRESET (4 ), read, EINTR 3 : 0 0 0, : rc = read(sock, buf, size); if (rc > 0) / / write(fd,buf,rc); else if (rc == 0) / / close(fd); close(sock); else / / if (errno == EINTR) / / 43

52 else fprintf(stderr, read error: % s \ n, strerror(errno)); exit(1); read 0,, ; 0,,, ; 0,, : EINT R,,, read ; ECONNRESET, RST,,,,, : (1 ) write, (2 ) TCP RST TCP, TCP RST, TCP RS T, write, E PIPE (3 ), write, EINTR : 0 0, : wc = write(sock, buf, size); if (wc > 0) / / / / else if (errno == EINTR) / / else fprintf(stderr, write error: % s \ n, strerror(errno)); exit(1); 0,, ; 0,, : 44

53 EINT R, ; EP IPE,,,,, ;,,,,,,, ;,, : int read all(int fd, void buf, int nbytes); int write all(int fd, void buf, int nbytes); read all fd nbytes buf write all fd buf nbytes : # include < errno.h > # include < unistd.h > int read all(int fd, void buf, int n) int nleft; int nbytes; char ptr; ptr = buf; nleft = n; for (; nleft > 0; ) nbytes = read(fd, ptr, nleft); if (nbytes < 0) if (errno == EINTR) nbytes = 0; else return ( - 1); else if (nbytes == 0) break; nleft - = nbytes; ptr + = nbytes; return (n - nleft); int write all(int fd, void buf, int n) 45

54 int nleft, nbytes; char ptr; nleft = n; ptr = buf; for (; nleft > 0; ) nbytes = write(fd, ptr, nleft); if (nbytes < = 0) if (errno == EINTR) nbytes = 0; else return ( - 1); nleft - = nbytes; ptr + = nbytes; return (n); read all read, EINTR,,, EINTR, - 1 write all write, EINTR,,, EINTR, getsockname getpeername getsockname ; getpeername : # include < sys/ socket.h > int getsockname(int sockfd, struct sockaddr localaddr, int addrlen); int getpeername(int sockfd, struct sockaddr peeraddr, int addrlen); sockfd ; localaddr peeraddr Internet ; addrlen getsockname, 0,, localaddr, addrlen getpeer name, 0,, peeraddr, addrlen, - 1 : # include < sys/ socket.h > 46

55 # include < sys/ types.h > # include < netinet/ in.h > void disp addrcont(struct sockaddr in addr) if (addr - > sin family!= AF INET) perror( Not an Internet socket.\ n ); return; printf( address is: % s: % d \ n, inet ntoa(addr - > sin addr), ntohs(addr - > sin port)); main() int listenfd, connfd; struct sockaddr inservaddr, cliaddr, addr; int cliaddrlen, addrlen; if ((listenfd = socket(af INET, SOCK STREAM, 0)) < 0) perror( socket error.\ n ); exit(1); bzero(&servaddr, sizeof(servaddr)); servaddr.sin family = AF INET; servaddr.sin port = htons(8080); servaddr.sin addr.s addr = htonl(inaddr ANY); if (bind(listenfd, (struct sockaddr )&servaddr, sizeof(servaddr)) < 0) perror( bind port 8080 error.\ n ); exit(1); if (listen(listenfd, 1) < 0) perror( listen error.\ n ); exit(1); for (;;) connfd = accept(listenfd, (struct sockaddr )&cliaddr, &cliaddrlen); if (connfd < 0) perror( accept error.\ n ); exit(1); 47

56 printf( accept returned client address: \ n ); disp addrcont(&cliaddr); getpeername(connfd, (struct sockaddr )&addr, &addrlen); printf( getpeername returned client address: \ n ); disp addrcont(&addr); getsockname(connfd, (struct sockaddr )&addr, &addrlen); printf( getsockname returned server address: \ n ); disp addrcont(&addr); 3 : (1 ) connect, getsockname I P (2 ) IP INADDR ANY bind TCP, ( accept), getsockname IP (3 ), getpeername 3.6, IP,,, I P, IP ( resolver ) gethostbyname gethostbyaddr, IP, I P, I P,, Internet ( Domain Name System ), I P bbs.tsinghua.edu.cn IP ,, IP, tsinghua.edu.cn tsinghuaedu cn 3, 3 5, tsinghua, edu.cn, - I P,, 48

57 3 5, - IP, I P, DNS A IP 32 MX, NS CNAME PTR I P A A I P : master.utopian.edu.cn IN A master.utopian.edu.cn IN A slave.utopian.edu.cn IN A free IN A master.utopian.edu.cn IP , slave.utopian.edu.cn IP , free, free.utopian.edu.cn, IP IN In ternet MX MX : utopian.edu.cn IN MX 1 master.utopian.edu.cn utopian.edu.cn IN MX 2 slave.utopian.edu.cn free IN MX 1 free IN MX 2 master 49

58 utopian.edu.cn master.utopian.edu. cn, spirit, slave.utopian.edu.cn free.utopian.edu.cn,, master NS NS CNAME CNAME : ftp.utopian.edu.cn IN CNAME master.utopian.edu.cn IN CNAME master.utopian.edu.cn master.utopian.edu.cn, ftp.utopian.edu.cn P TR PT R( Pointer)IP, , ( Linux / etc/ resolv.conf), IP UDP, UDP, Inter net, 50

59 1. gethostbyname gethostbyname IP : # include < netdb.h > struct hostent gethostbyname(const char hostname); hostname, gethostbyname,, hostent ;, NULL hostent, 3 7 struct hostent char h name; / / char h aliases; / / int h addrtype; / :AF INET / int h length; / :4 (32 ) / char h addr list; / IP / # define h addr h addr list[0] / h addr list IP / gethostname A, hostent : h name ftp.utopian.edu.cn master.utopian.edu.cn h aliases master.utopian.edu.cn ftp.utopian.edu.cnwww.utopian.edu.cn h addrtype IPv4 AF INET h length I Pv4 4, 32 h addr list IP IP, h length,, : struct hostent he; he = gethostbyname( ftp.utopian.edu.cn ); hostent 3 7 master.utopian.edu.cn, ftp.utopian.edu.cn I P, gethostbyname, h errno, herror h errno : 51

60 3 7 hostent HOS T NOT FOU ND : NO ADDRESS:, IP NO RECOVERY: TRY AGAIN :, 2. gethostbyaddr gethostbyaddr IP : # include < netdb.h > struct hostent gethostbyaddr(const char addr, size t len, int family); addr in addr, IP ; len IP ; family AF INET gethostbyaddr, gethostbyname, h name ;, NULL gethostbyname gethostbyaddr : # include < netdb.h > # include < stdio.h > # include < stdlib.h > # include < sys/ socket.h > # include < netinet/ in.h > main(int argc, char argv[]) struct sockaddr in addr; struct hostent he; char alias; if (argc < 2) 52

61 perror( usage: hostname name ip...\ n ); exit(1); argv ++ ; for (; argv!= NULL; argv ++ ) if (inet aton( argv, &addr.sin addr)!= 0) he = gethostbyaddr((char )&addr.sin addr, 4, AF INET); printf( address information of IP % : \ n, argv); else he = gethostbyname( argv); printf( address information of host % s: \ n, argv); if (he == NULL) fprintf(stderr, no address information of % s \ n, argv); continue; printf( official host name: % s \ n, he - > h name); printf( name aliases: ); for (alias = he - > h aliases; alias!= NULL; alias ++ ) printf(% s,, alias); printf(\ nip addresses: ); for (alias = he - > h addr list; alias!= NULL; alias ++ ) printf(% s,, inet ntoa( (struct in addr )( alias)));, IP, IP, inet aton,, IP, ; inet aton,, gethostbyname, hostent h addr list IP, I P, I P, inet, addr I P : aton, conv, int addr conv(char address, struct in addr inaddr) struct hostent he; if (inet aton(address, inaddr) == 1) return 1; he = gethostbyname(address); 53

62 if (he!= NULL) inaddr = return 1; else return 0; (struct in addr )he - > h addr list[0]); addr conv 1, 0addr conv inet aton, inaddr, 1;, gethostbyname, IP inaddr, 1, inaddr s addr - 1, 0, :,,, ;, : (1 ) struct hostent host1, host2, host3, host4; (2 ) host1 = get hostbyname( host name1) ; (3 ) host2 = get hostbyname( host name2) ; (4 ) if ( host2 ) host3 = host2 ; (5 ) host4 = get hostbyname( host name4) ; (2 )hostname1, host1 ; ( 3) hostname2, host2, hostname1, host1 hostname2 ; ( 4), host2 host3, ( 5 ) gethostbyname, ( 5 ), host4 hostname4,, host3 hostname4 hostent, hostent,, hostent,,, :, geth ostbyname, IP,, : Web, I P , Web, IP,,, gethostbyname,, : ( 1), ; ( 2) 54

63 , Linux,,, U NIX,, Netscape Communicator 3. uname gethostname uname gethostname : # include < sys/ utsname.h > int uname(struct utsname name); # include < unistd.h > int gethostname(char name, size t len); uname name utsname, 0, name ;, - 1gethostname name, len name utsname : struct utsname char sysname[sys NMLN]; char nodename[sys NMLN]; char release[sys NMLN]; char version[sys NMLN]; char machine[sys NMLN]; char domainname[sys NMLN]; ; uname, utsname nodename uname,, gethostbyname, IP : struct hostent he; struct utsname myname; struct in addr paddrlist; if (uname(&myname) < 0) return(null); if ( (he = gethostbyname(myname.nodename)) == NULL) return(null); paddrlist = he - > h addr list; 3.7 Internet, ( F T P ) ( TELNET ) 55

64 ( ),, F TP 20 21, TELNET 23, 25, Inter net Linux / etc/ services, www : www 80/ tcp http # WorldWideWeb HTTP www, 80, TCP,, HTT P : bash telnet bash telnet http HTT P 80 : :, HT TP, HT TP HT TP 80, 80, HTT P 8080, 8080,, / etc/ services : 1. getservbyname getservbyname : # include < netdb.h > struct servent getservbyname(const char servname, const char protoname); servname ; protoname, servent ;, NULL servname : struct servent char s name; / / char s aliases; int s port; char s proto; ; / / / / / /? s port, getservbyname, ( HTT P TCP ), protoname N ULL ; 56

65 (DNS, UDP TCP ),,, protoname NULL, : int serv port(char servname, char proto, int port) struct servent se; se = getservbyname(servname, proto); if (se == NULL) return (0); port = se - > s port; return (1); serv port servname proto, port,, 1, 0 2. getservbyport getservbyport : # include < netdb.h > struct servent getservbyport(int port, const char protoname); port ; protoname, servent ;, NULL servents name, 514 TCP Shell, UDP Syslog, protoname 3.8, 1.,,, 2., 57

66 3.,,, 16, htons ntohs ; 32, htonl ntohl ; 64, 32 : void sender(int sockfd, long data) long nd; nd = htonl(data); write(sockfd, &nd, sizeof(nd)); void receiver(int sockfd, long data) long nd; read(sockfd, &nd, sizeof(nd)); data = ntohl(nd); :, 64 : void sender(int sockfd, long data) char buf[5]; sprintf(buf, % ld, data); write(sockfd, buf, strlen(buf)); void receiver(int sockfd, long data) char buf[5]; read(sockfd, buf, sizeof(buf)); sscanf(buf, % ld, data); 4. 58

67 , :, : struct multi type char sd str[10]; int sd int; ; void sender(int sockfd, struct multi type data) int len; len = strlen(data.sd str); len = htonl(len); write(sockfd, &len, sizeof(len)); write(sockfd, & data.sd str,len); len = htonl(data.sd int); write(sockfd, &len, sizeof(len)); void receiver(int sockfd, struct multi type data) int len; read(sockfd, &len, sizeof(len)); len = ntohl(len); read(sockfd, data - > sd str, len); read(sockfd, &len, sizeof(len)); data - > sd int = ntohl(len); sender :,,,,, receiver :, multi type,, multi type,, 5., 59

68 6.,, Sun Microsystem, Sun XDR (external Data Representation) - XDR, XDR,, ( local representation ) XDR XDR, RFC TCP TCP, connect TCP 3, TCP, bind, lis ten,, accept, close gethostbyname I P get servbyname 60

69 4 TCP , ,,,,,, :, Telnet, -,, : (1 ) = + (2 ) : Length : (3 ) Length,,, : Length 14 Hello, my lord! 14, Hello, my lord! 4 1,,, write requ read requ, 61

70 4 1 - write all read all, 4.3 : : # include < string.h > # include < sys/ socket.h > # include < netinet/ in.h > # include < stdio.h > # include < signal.h > # define SERVER PORT 8080 # define BACKLOG 5 int main(int argc, char argv[]) int listenfd, connfd; struct sockaddr in servaddr; listenfd = socket(af INET, SOCK STREAM, 0); if (listenfd < 0) fprintf(stderr, Socket error \ n ); exit(1); bzero(&servaddr, sizeof(servaddr)); servaddr.sin family = AF INET; servaddr.sin addr.s addr = htonl(inaddr ANY); servaddr.sin port = htons(server PORT); if (bind(listenfd, (struct sockaddr )&servaddr, sizeof(servaddr)) < 0) fprintf(stderr, Bind error \ n ); exit(1); if (listen(listenfd, BACKLOG) < 0) fprintf(stderr, Listen error \ n ); exit(1); for ( ;; ) 62

71 connfd = accept(listenfd, NULL, NULL); if (connfd < 0) fprintf(stderr, Accept error \ n ); exit(1); serv respon(connfd); close(connfd); close(listenfd); : (1 ) socket, 8080, 8080 : 1024,, ; 5000,, ;, bind listen (2 ) accept accept, connfd (3 ), serv respon, close (4 ), 4.4 : serv respon, : # include < string.h > # include < sys/ socket.h > # include < netinet/ in.h > # include < stdio.h > # include < signal.h > # define SERVER PORT 8080 # define BACKLOG 5 void serv resp on (int sockfd) 63

72 int nbytes; char buf[1024]; for ( ;; ) nbytes = read requ(sockfd, buf, 1024); if (nbytes == 0) return; else if (bytes < 0) fprintf(stderr, read error: % s \ n, strerror(errno)); return; if (write all(sockfd, buf, nbytes) < 0) fprintf(stderr, write error: % s \ n, strerror(errno)); : read requ, buf,, read requ 0,, ; 0,, ; read requ 0,, write all, serv respon serv respon read requ, : int read requ(int sockfd, char buf, int size) char inbuf[256]; int n; int i; i = read line(sockfd, inbuf, 256); if (i < 0) return (i); else if (i == 0) return (0); if (strncmp(inbuf, Length, 6) == 0) sscanf(buf + 6, % d, &n); else sprintf(buf, Invalid option, 14); return (14); return (read all(sockfd, buf, n)); 64

73 read requ :, read requ read line, Length, sscanf ; Length,, read requ, read requ read line, : # include < errno.h > # define MAX BUF SIZE 1024 int get char(int fd, char ch) static int offset = 0; static int size = 0; static char buf[max BUF SIZE]; for (; size < = 0 offset == size; ) size = read(fd, buf, MAX BUF SIZE); if (size < 0) if (errno == EINTR) size = 0; continue; else return ( - 1); offset = 0; ch = buf[offset ++ ]; return (1); int read line(int fd, char buf, int maxlen) int i, n; char ch; for (i = 0; i < maxlen; ) n = get char(fd, &ch); if (n == 1) buf[i ++ ] = ch; if (ch == \ n ) break; else if (n < 0) return ( - 1); else break; 65

74 buf[i] = \ 0 ; return (i); read line, (\ n ),,, read, read,,,, read line get char, get char get char read, buf read line get char, get char buf,, ; buf, read, 4.5 : : # include < sys/ socket.h > # include < stdio.h > # include < netinet/ in.h > # define SERVER PORT 8080 void main(int argc, char argv[]) int sockfd; struct sockaddr in servaddr; if (argc!= 2) fprintf(stderr, usage: client < IPaddress > \ n ); exit(1); sockfd = socket(af INET, SOCK STREAM, 0); if (sockfd < 0) fprintf(stderr, Socket error \ n ); exit(1); bzero(&servaddr, sizeof(servaddr)); servaddr.sin family = AF INET; servaddr.sin port = htons(server PORT); if (inet aton(argv[1], &servaddr.sin addr) == 0) fprintf(stderr, Inet aton error \ n ); exit(1); 66

75 if (connect(sockfd, (struct sockaddr )&servaddr, sizeof(servaddr)) < 0) fprintf(stderr, connect error: % s \ n, strerror(errno)); exit(1); cli requ(sockfd); close(sockfd); : (1 ) socket (2 ) I P, inet aton IP, IP servaddr, connect, connect, connect (3 ), cli requ (4 ) close 4.6 : cli requ, : # include < sys/ socket.h > # include < stdio.h > # include < netinet/ in.h > # define SERVER PORT 8080 void cli requ(int sockfd) char inbuf[256], oubuf[256]; int n; for ( ;; ) if (gets(inbuf) == NULL) return; n = strlen(inbuf); sprintf(oubuf, Length % d \ n, n); 67

76 write all(sockfd, oubuf, strlen(oubuf)); write all(sockfd, inbuf, n); n = read all(sockfd, inbuf, n); if (n == 0) return; else if (n < 0) fprintf(stderr, read line error.\ n ); return; write(1, buf, n); :,,,,, ( 0 ), cli requ , : bash echo - serv& [1] 283, socket bind listen accept,, accept, netstat : bash netstat - a grep 8080 tcp 0 0 :8080 : LISTEN netstat - a LISTEN, I P,, 8080, I P , ( 2 ) IP echo cli : bash echo cli , socket connectconnect TCP 3, TCP SYN, 68

77 connect, accept, 3 :, netstat 3 : bash netstat - a grep 8080 tcp 0 0 localhost:8080 localhost:1157 ESTABLISHED tcp 0 0 localhost:1157 localhost:8080 ESTABLISHED tcp 0 0 :8080 : LISTEN, 8080, 1157, ESTABLISHED, 1157, 8080, ESTABLISHED, LIS TEN : accept, accept,, accept, connect, (1 ) write all (2 ) read line (3 ) write all (4 ) read all (5 ) write all (6 ) read all : bash echo - cli

78 Hello World! Hello World! Hello World!,,,,, Ctrl + D, Linux Ctrl + D Ctrl + D, gets, cli requ,, close TCP, (1 ) cli requ, close, Linux, (2 ), close, 0, : TCP TCP FIN, F IN WAIT 1,, netstat : bash netstat grep 8080 tcp : :8080 FIN WAIT 1 TCP, FIN, CLOSE WAIT, FIN WAIT 2, netstat,, close( connfd),, netstat : 70

79 bash netstat grep 8080 tcp 0 0 localhost:8080 localhost:1157 CLOSE WAIT tcp 0 0 localhost:1157 localhost:8080 FIN WAIT 2 tcp 0 0 :8080.LISTEN, CLOSE WAIT, FIN, ;, F IN WAIT 2, FIN (3 ) TCP TCP F IN, read line, TCP F IN, read line 0,, read requ 0, serv respon (4 ) serv respon, close, 0, : TCP TCP FIN, TCP LAST ACK, TCP, netstat : bash netstat grep 8080 tcp : :1537 LAST ACK tcp 0 0 :8080. LISTEN TCP F IN, TIME WAIT, F IN, TIME WAIT MSL, TCP TCP FIN, TCP netstat : bash netstat grep 8080 tcp 0 0 localhost:1157 localhost:8080 TIME WAIT tcp 0 0 :8080. LISTEN TIME WAIT, (5 ),,,

80 ,, ( GDB) : bash gdb echo serv serv resp read requ,, read requ,, i GDB i 0 : gdb > set i = 0 i, serv resp, close, close, 0, TCP : TCP F IN, TCP FIN, TCP, FIN WAIT 2 netstat : bash netstat - a grep 8080 tcp 0 0 localhost:8080 localhost:1200 FIN WAIT 2 tcp 0 0 localhost:1200 localhost:8080 CLOSE WAIT tcp 0 0 :8080.LISTEN, F IN WAIT 2; FIN, CLOSE WAIT, read all, read, TCP FIN, read all 0, cli requ close, TCP : TCP F IN, TCP F IN,, TIME WAIT 2, MSL

81 , HT TP,,, 4.9 -, -, kill,, kill : bash ps x grep echo - serv 140 p0 S 0:02 echo - serv bash kill 140 [3] + Terminated echo serv, :, accept,,,,,,, TCP SYN,, ; TCP SY N,,,,,,, TCP F IN 3 :, cli requ write all ;, cli requ write all ;, read all F IN, -, FIN, -, F IN,,, FIN, 3 : write all F IN 73

82 write all,,,, TCP FIN, FIN,,, write,, write all TCP, TCP, TCP RST write all,, TCP RST, write all, TCP RST, write SIGP IPE,,,, SIGPI PE,, ( ) : # include < signal.h > int main() signal(sigpipe, SIG IGN); cli requ(); SIGP IPE, write all, E PIP E 74

83 cli requ,, write all F IN write all,,, TCP FIN, write,, write all TCP, TCP,, TCP RST, write all, read all, read all 0, TCP F IN cli requ,,, TCP RST, -, write all,,, TCP TCP RST, RST, read all, ECONNRESET-, read all F IN read all,,, TCP F IN, read all 0, cli requ,, 4.10,, RESET,,, : (1 ), read all,,, (2 ), write all, write, write all, read all,,,, : 75

84 TCP,, TCP, TCP,, TCP,,, read, ETIMEOUT ( ) -, TCP,, ICMP, TCP ICM P,, read all, ICMP, EHOSTU NREACH ENETU N REACH ( ICMP ),, read, 76

85 4.11,,,,,,,,,,,, : (1 ), read all,,,, (2 ), write all, write, write all, read all,,,, : TCP,, TCP, TCP,, TCP TCP,, TCP, TCP, RST TCP RST,, read, ECONNRESET

86 4.12,, : (1 ), read,,,,,,, (denial of service) : TCP TCP, (2 ), write all, write, TCP RST, RS T,, TCP RST, read, ECONNRESET 4.13 TCP, 3 : connect, accept read write close, close,, TCP RST ;, 78

87 5 UDP 5.1 UDP TCP, UDP TCP UDP TCP, UDP - UDP socket, bind, recvfrom UDP UDP socket, sendto, close UDP, UDP TCP, UDP 79

88 5.2 recvfrom sendto recvfrom, sendto, UDP : # include < sys/ socket.h > int recvfrom(int sockfd, void buf, int len, unsigned int flags, struct sockaddr from, socklen t addrlen); int sendto(int sockfd, const void msg, int len, unsigned int flags, const struct sockaddr to, int tolen); sockfd buf len read write, ; flay recvfrom from, ; addrlen sendto to ; addrlen recvfrom, ; - 1 sendto, ; - 1 UDP,, sendto UDP,, recvfrom, ;, recvfrom from NULL, addrlen NULL UDP sendto, UDP UDP, ; recvfrom, UDP UDP UDP UDP, sendto, sendto, UDP UDP, UPD IP, UDP UDP, UDP UDP UDP, UDP, sendto, EMSGSIZEUDP, sendto, UDP, UDP, UDP, sendto 0 UDP UDP,, UDP, UDP 5 2 UDP 80

89 5 2 UDP UDP, UDP, UDP, UDP, UDP recvfrom, ;,, UDP, recvfrom 0 TCP : TCP, 0,, TCP, ; UDP,, 0, 0, 5.3 UDP : UDP, : # include < sys/ types.h > # include < sys/ socket.h > # include < netinet/ in.h > # include < stdio.h > # define SERV PORT 8080 int main() int sockfd; struct sockaddr in addr; sockfd = socket(af INET, SOCK DGRAM, 0); if (sockfd < 0) fprintf(stderr, socket error.\ n ); exit(1); bzero(&addr, sizeof(addr)); addr.sin family = AF INET; 81

90 addr.sin addr.s addr = htonl(inaddr ANY); addr.sin port = htons(serv PORT); if (bind(sockfd, (struct sockaddr )&addr, sizeof(addr)) < 0) fprintf(stderr, bind error.\ n ); exit(1); udps respon(sockfd); close(sockfd); UDP, : sockfd = socket(af INET, SOCK DGRAM, 0);,, udps respon, 5.4 UDP : : # define MAX MSG SIZE 1024 void udps respon(int sockfd) struct sockaddr in addr; int addrlen; char msg[max MSG SIZE]; for ( ;; ) n = recvfrom(sockfd, msg, MAX MSG SIZE, 0, (struct sockaddr )&addr, &addrlen); sendto(sockfd, msg, n, 0, addr, addrlen); : recvfrom, 5.5 UDP UDP, : UDP,,

91 , UDP UDP, UDP, : TCP, UDP ; IP,, I P, I P 2.,, UDP TCP : UDP, UDP,, UDP,, ; TCP,,, TCP,, 5 3 UDP, 5 4 UDP 5 3 UDP 5 4 UDP 83

92 5 4,, TCP, UDP,, UDP 3. recvfrom,, recvfrom from 4. IP I P INADDR ANY, UDP, IP, IP, UDP TCP 5 1 TCP UDP 5 1 TCP UDP IP IP accept getsockpeer accept getsockpeer getsockname getsockname recvfrom recvfrom - getsockname UDP, : (1 ), I P, IP IP (2 ) IP UDP UDP, IP,,,,, SO REUSEADDR 5.6 UDP : UDP, : # include < sys/ types.h > # include < sys/ socket.h > # include < netinet/ in.h > 84

93 # include < stdio.h > int main(int argc, char int sockfd; struct sockaddr in addr; if (argc!= 3) argv[]) fprintf(stderr, usage: client ipaddr port \ n ); exit(1); sockfd = socket(af INET, SOCK DGRAM, 0); if (sockfd < 0) fprintf(stderr, socket error.\ n ); exit(1); bzero(&addr, sizeof(addr)); addr.sin family = AF INET; addr.sin port = htons(atoi(argv[2])); if (inet aton(argv[1], &addr.sin addr) < 0) fprintf(stderr, inet aton error.\ n ); exit(1); udpc requ(sockfd, &addr, sizeof(addr)); close(sockfd); socket,, udpc requ, 5.7 UDP : : # define MAX BUF SIZE 1024 void udpc requ(int sockfd,const struct sockaddr in addr,int len) char buf[max BUF SIZE]; int n; for (; fgets(buf, MAX BUF SIZE, stdin)!= NULL; ) sendto(sockfd, buf, strlen(buf), 0, addr, len); n = recvfrom(sockfd, buf, MAX BUF SIZE, 0, NULL, NULL); buf[n] = 0; 85

94 fputs(buf, stdout);, sendto, recvfrom, sendto recvfrom, ( Ctrl + D), 5.8 UDP UDP, : 1. UDP,, UDP, sendto, sendto, recvfrom sendto, UDP,, UDP IP, IP,, UDP UDP, IP IP IP IP,recvfrom,recvfrom I P, sendto, UDP, 2., recvfrom, sendto,,,, :,,, : # define MAX BUF SIZE 1024 void udpc requ(int sockfd, const struct sockaddr in addr,int len) 86

95 struct sockaddr in inaddr; int inaddrlen; char buf[max BUF SIZE]; int n; for (; fgets(buf, MAX BUF SIZE, stdin)!= NULL; ) sendto(sockfd, buf, strlen(buf), 0, addr, len); n = recvfrom(sockfd, buf, MAX BUF SIZE, 0, &inaddr, &inaddrlen); if (inaddrlen!= len memcmp(&inaddr, addr, len)!= 0) fprintf(stderr, unexpected response from % s, discarded.\ n,inet ntoa (inaddr.sin addr)); continue; buf[n] = 0; fputs(buf, stdout); recvfrom,,, :,,, recvfrom,, : connect, connect UDP 3. UDP,, recvfrom,,, : (1 ),, recvfrom (2 ),,,, recvfrom,,, recvfrom,, recvfrom 87

96 5.9 UDP UDP connect, TCP UDP connect 3, UDP UDP connect, UDP I P, connect ; TCP connect, TCP 3,, connect connect UDP UDP, connect UDP UDP UDP : 1. UDP UDP, UDP UDP 2., UDP UDP UDP UDP 5 5 UDP 5 5 UDP :,, UDP UDP UDP, UDP, UDP, ; UDP, UDP I P IP,,, UDP, connect, UDP UDP 88

97 3. write, write, write, UDP TCP, TCP : TCP, write, TCP write ; UDP, write,, UDP write UDP :, TCP, UDP UDP,, UDP,, UDP, ICMP, ICM P UDP, UDP sendto, sendto,,,, ECONNRESET UDP, U NIX ; UDP, Linux, UNIX,, UDP, U NIX, Linux SO BSDCOM PAT,,, Linux UDP ICMP,,, UDP ICMP,, UDP ICMP, UDP ICMP,,, ENETU NREACH EHOSTU N REACH,,, connect UDP UDP UDP, UDP 89

98 : (1 ) (2 ), U NIX UDP connect TCP, TCP connect connect, UDP : struct sockaddr in addr1, addr2; int udpfd; connect(udpfd, (struct sockaddr )&addr1, sizeof(addr1)); connect(udpfd, (struct sockaddr )&addr2, sizeof(addr2)); UDP TCP : TCP close ; UDP connect UDP UDP, connect,, connect, Posix connect AF SPEC, UDP : struct sockaddr in addr; int sockfd;... addr.sin family = AF UNSPEC;... connect(sockfd, (struct sockaddr )&addr, sizeof(addr)); U N, EAFNOSUPPOR T, UDP AF UNSP EC, UDP, UDP, : # include < sys/ socket.h > # include < sys/ types.h > # include < netinet/ in.h > int main(int argc, char argv[]) int sockfd; struct sockaddr in addr; if (argc!= 3) 90

99 fprintf(stderr, usage: client ipaddr port \ n ); exit(1); sockfd = socket(af INET, SOCK DGRAM, 0); if (sockfd < 0) fprintf(stderr, socket error.\ n ); exit(1); bzero(&addr, sizeof(addr)); addr.sin family = AF INET; addr.sin port = htons(atoi(argv[2])); if (inet aton(argv[1], &addr.sin addr) < 0) fprintf(stderr, inet aton error.\ n ); exit(1); if (connect(sockfd, (struct sockaddr )&addr,sizeof(addr)) < 0) fprintf(stderr, connect error.\ n ); exit(1); udpc requ(sockfd); close(sockfd); connect, UDP UDP, udpc requ udpc requ : # define MAX BUF SIZE 1024 void udpc requ(int sockfd) char buf[max BUF SIZE]; int n; for (; fgets(buf, MAX BUF SIZE, stdin)!= NULL; ) write(sockfd, buf, strlen(buf)); n = read(sockfd, buf, MAX BUF SIZE); if (n < 0) fprintf(stderr, read error: % s \ n, strerror(errno)); return; buf[n] = 0; fputs(buf, stdout); 91

100 , write, read read,, udpc requ, 5.10 UDP UDP 1. UDP UDP UDP, TCP : UDP, UDP UDP,,,,,,,,,,,,, UDP, DNS, T FT P RPC, UDP 2. UDP UDP,,,,,, UDP, UDP, 3. UDP UDP,, recvfrom,, UDP 92

101 ,, UDP :,,,,,,, :,,,,, 4. UDP UDP : - ( multicast),, TCP UDP,,,,, UDP TCP TCP, UDP, TCP, UDP, TCP, UDP TCP, TCP, 5.11 UDP recvfrom sendto UDP sendto recvfrom UDP connect UDP, UDP 93

102 6 6.1 Linux, Linux,,,,, 6.2 (fork exec) Linux, SHELL, SHELL Linux,,, init Linux, ( System Call) fork Linux vfork, fork, : # include < unistd.h > pid t fork(void); fork,, fork,, fork, ;, fork 0, - 1fork : if ((pid = fork()) == 0) / /... exit(0); else if (pid < 0) / / exit(1); 94

103 else / /... exit(0); fork, fork : fork :,, ; fork 0 Linux fork : fork,, ( ), ,,,,, fork, fork, fork 0 :, ;,,,,, getppid 95

104 ,,,, ( real) (effective), HOME, PATH, close - on - exec ( nice ) ( process group ID) ( session ID) ( umask ) : fork,,,, if exit, exit, if...then...,,, : # include < unistd.h > int main() pid t pid; char buf[128]; gets(buf); pid = fork(); if (pid == 0) printf( child: ); else printf( parent: ); 96

105 printf(% s \ n, buf); : bash share hello parent: hello child: hello, printf(% s \ n, buf),, 5, / etc/ passwd,, , 1, inode, (/ etc/ passwd), 1, 6 3, 5, 2, Linux,,, # include < unistd.h > # include < fcntl.h > # include < sys/ types.h > int main() 97

106 6 3 int fd; pid t pid; off t off; fd = open( / etc/ passwd, O RDONLY); off = lseek(fd, 10, SEEK CUR); pid = fork(); if (pid == 0) printf( child: position % d \ n, off); off = lseek(fd, 0, SEEK END); printf( child: change position to % d \ n, off); exit(0); else if (pid > 0) wait(null); off = lseek(fd, 0, SEEK CUR); printf( parent: position % d \ n, off); exit(0); else printf( fork error.\ n ); 98

107 / etc/ passwd, 10,,,,,, lseek, : bash shr fd child: position 10 child: change position to 532 parent: position 532 : (1 ),,,, (2 ),, Linux, Shell, HTT P CGI,,,, if, then, exec 6, : # include < unistd.h > int execve(const char path, char const argv[], char const envp[]); int execl(const char path, const char arg,); int execlp(const char file, const char arg,); int execle(const char path, const char arg,,char const envp[]); int execv(const char path, char const argv[]); int execvp(const char file, char const argv[]);, 5,, path, ; file, PATH, argv [ 0 ], N ULL, execve execle,,,, - 1 exec, exec exec,, 99

108 : exec, FD CLOEXEC, exec, FD CLOEXEC, 5 : # include < fcntl.h > fcntl(5, F SETFD, FD CLOEXEC); 6.3,, ( real user id) ( effective user id), kill exec setuid, setuid, setuid, setuid 1 setuid : bash # chmod + s/ usr/ bin/ ping / usr/ bin/ ping setuid 1 setuid,, / usr/ bin/ ping, setuid,,, setuid,, pingmount login 6.4 Linux,,,,,, : 1., 100

109 (read), 2.,,, 6 1 Linux 6 1 SIGHUP SIGI NT SIGQU IT core, core SIGILL core SIGTRAP core SIGBUS core SIGSEGV core SIGFPE core SIGIOT core I/ O SIGKILL SIGPIPE SIGALARM SIGT ERM SIGSTOP SIGTSTP SIGCONT SIGURG I/ O SIGIO I/ O SIGCHLD SIGT TOU SIGT TIN SIGXCPU CPU SIGXFSZ SIGWI NCH SIGPROF SIGUSR1 1 SIGUSR2 2 SIGVTALRM,, : 101

110 ,, core,,,, sigaction : # include < signal.h > int sigaction(int signum, const struct sigaction act,struct sigaction oldact); signum, SIGKILL SIGSTOP ; act ; oldact,, 0; - 1 sigaction : struct sigaction void ( sa handler)(int); sigset t sa mask; int sa flags; void ( sa restorer)(void);/ / ; : sa handler, 3,, SIG DFL ;, SIG IGN;, sa mask,, sa flags : SA ONESHOT SA RESETHAND, SA RESTART, SA NOCLDSTOP signum SIGCHLD, ( SIGSTOP ), SA NOMASK SA NODEF ER, Linux signal : 102

111 # include < signal.h > void ( signal(int sig, void ( func)(int)))(int);, signal,, sigaction SA ONESHOT,, Linux : # include < signal.h > int sigprocmask(int how,const sigset t set, sigset t oldset); int sigpending(sigset t set); int sigsuspend(const sigset t mask); sigprocmask, how : SIG BLOCK, set SIG UNBLOCK, set SIG SETMASK, set oldset sigpending ( pending), set sigsuspend mask,,,, Linux : # include < signal.h > int sigemptyset(sigset t set); int sigfillset(sigset t set); int sigaddset(sigset t set, int signum); int sigdelset(sigset t set, int signum); int sigismember(const sigset t set, int signum); sigemptyset ; sigfillset ; sigaddset ; sigdelset ; sigismember, Linux : (1 ) ( ),, SA ONESHOT (2 ),, sa mask (3 ),,,, Linux 103

112 (4 ) sigprocmask,,,,,, ;,,,, EINTR : # include < signal.h > # include < string.h > # include < errno.h > void sigint handler(int); int main() char buf[10]; int n; struct sigaction act; act.sa handler = sigint handler; sigemptyset(&act.sa mask); act.sa flags = 0; sigaction(sigint, &act, NULL); n = read(0, buf, sizeof(buf)); if (n < 0) if (errno == EINTR) printf( read interrupted \ n ); else printf( read error: % s \ n, strerror(errno)); write(1, buf, n); void sigint handler(int sig) return; sigaction SIGINT ( Ctrl + C ),, ; Ctrl + C, SIGINT, : bash sig int ^C read interrupted 104

113 kill : # include < sys/ types.h > # include < signal.h > int kill(pid t pid, int sig); pid, sig pid : : pid 0: - 1:, 0 1-1: pid,,, kill 6.5 Linux exit,,, SIGCHLD, (Zombie) ps, < zombie > void exit(int status); status exit :, exit,,, exit, status exit : (1 ), SIGHU P (2 ) (3 ), init (4 ) SIGCHLD 6.6, SIGCHLD,, Linux : 105

114 int main() int i; for (i = 0; i < 5; i ++ ) if (fork() == 0) exit(0); for (;;), ps : bash ps x PID TTY STAT TIME COMMAND 66 2 S 0:00 - bash 68 4 S 0:00 - bash 91 2 R 0:28 a.out 92 2 Z 0:00 (a.out < zombie > ) 93 2 Z 0:00 (a.out < zombie > ) 94 2 Z 0:00 (a.out < zombie > ) 95 2 Z 0:00 (a.out < zombie > ) 96 2 Z 0:00 (a.out < zombie > ) R 0:00 ps x SIGCHLD, SIGCHLD : 1. SIGCHLD sigaction SIGCHLD, : # include < signal.h > struct sigaction act, oldact; act.sa handler = SIG IGN; sigemptyset(&act.sa mask); act.sa flags = 0; if (sigaction(sigchld, &act, &oldact) < 0) perror( sigaction error \ n ); exit(1); SIGCHLD,, SIG IGN,, SIGCHLD,, 106

115 Linux, UNIX,, SIGCHLD, SIGCHLD,, : # include < signal.h > int main() struct sigaction act; int i; act.sa handler = SIG IGN; sigemptyset(&act.sa mask); act.flags = 0; sigaction(sigchld, &act, NULL); for (i = 0; i < 5; i ++ ) if (fork() == 0) exit(0); for (;;), : bash zombie 1 PID TTY STAT TIME COMMAND 66 2 S 0:00 - bash 68 4 S 0:00 - bash R 0:52 def 1 2. wait waitpid wait waitpid, : # include < sys/ wait.h > pid t wait(int statloc); pid t waitpid(pid t pid, int statloc, int option); wait waitpid :, statloc, exit wait ;, ;, ;, - 1waitpid pid, ; pid - 1, WNOHANG waitpid,,, 107

116 ,,, int pid, status; while ((pid = wait(&status)) > 0) printf( child % d died, exit code % d \ n, pid, status);,,, : # include < sys/ types.h > # include < sys/ wait.h > int main() int i; pid t pid; for (i = 0; i < 5; i ++ ) if (fork() == 0) printf( child % d \ n, getpid()); exit(0); for (; (pid = wait(&i)) > 0; ) printf( child % d died: % d \ n, pid, WEXITSTATUS(i)); : bash zombie 2 child 98 child 99 child 102 child 101 child 100 child 102 died: 0 child 101 died: 0 child 100 died: 0 child 99 died: 0 child 98 died: 0 3. SIGCHLD SIGCHLD,, : 108

ebook15-10

ebook15-10 1 0 10.1 U N I X V 7 4. 3 B S D S V R 3 P O S I X. 1 100 % 10.2 S I G S I G A B RT a b o r t S I G A L R M a l a r m V 7 1 5 S V R 4 4. 3 + B S D 31 < s i g n a l. h > 0 10. 9 k i l l 0 P O S I X. 1 D

More information

ebook35-21

ebook35-21 21 Linux L i n u x 211 U N I X U N I X I / O F I F O U N I X I n t e r n e t s o c k e t () s o c k e t () send() r e c v ( read() w r i t e () send() r e c v () I n t e r n e t 212 Internet Internet S

More information

工程硕士信息通信网实验讲义.doc

工程硕士信息通信网实验讲义.doc 1 Linux 1.1 Linux 1.1.1 Linux 1.1.2 Linux Linux --help arp help manual manual TCP/IP ARPIP RFC1812 2.2.3 IPV4 IPv6 RFC ftp 1.1.3 1 ARP ip addr show up eth0 IP ip neigh show ARP VLAN VLAN IP Ping ICMP echo

More information

Simulator By SunLingxi 2003

Simulator By SunLingxi 2003 Simulator By SunLingxi sunlingxi@sina.com 2003 windows 2000 Tornado ping ping 1. Tornado Full Simulator...3 2....3 3. ping...6 4. Tornado Simulator BSP...6 5. VxWorks simpc...7 6. simulator...7 7. simulator

More information

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC 8 TCP/IP TCP/IP TCP OSI 8.1 OSI 4 end to end A B FTP OSI Connection Management handshake Flow Control Error Detection IP Response to User s Request TCP/IP TCP 181 UDP 8.2 TCP/IP OSI OSI 3 OSI 3 8.1 TCP/IP

More information

Chap6.ppt

Chap6.ppt Computer Networks v4 cs.sjtu 12/21/12 6 Internet ftp://ftp.cs.sjtu.edu.cn/ybzhang 61 / 110 Computer Networks v4 cs.sjtu 12/21/12 ftp://ftp.cs.sjtu.edu.cn/ybzhang 62 / 110 Computer Networks v4 cs.sjtu 12/21/12

More information

untitled

untitled Lwip Swedish Institute of Computer Science February 20, 2001 Adam Dunkels adam@sics.se (QQ: 10205001) (QQ: 329147) (QQ:3232253) (QQ:3232253) QQ ARM TCPIP LCD10988210 LWIP TCP/IP LWIP LWIP lwip API lwip

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

R3105+ ADSL

R3105+ ADSL ... 1 1 1... 1 1 2... 1... 3 2 1... 3 2 2... 3 2 3... 5 2 4... 5 2 4 1... 5... 7 3 1... 7 3 2... 8 3 2 1... 8 3 2 2... 9 3 3... 12 3 3 1... 13 3 3 2 WAN... 16 3 3 3 LAN... 21 3 3 4 NAT... 22 3 3 5... 24

More information

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP TCP/IP : TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP 1. ASCII EBCDIC Extended Binary-Coded Decimal Interchange Code 2. / (1) (2) Single System Image SSI) (3) I/O (4) 3.OSI OSI Open System Interconnection

More information

C6_ppt.PDF

C6_ppt.PDF C01-202 1 2 - (Masquerade) (Replay) (Message Modification) (Denial of Service) - ( ) (Eavesdropping) (Traffic Analysis) 8 1 2 7 3 6 5 4 3 - TCP SYN (SYN flood) Smurf Ping of Death LAND Attack Teardrop

More information

¶C¶L§§¬_™¨ A.PDF

¶C¶L§§¬_™¨ A.PDF 1 9 3 1 9 4 / 7.1 / 1 9 5 7.2 % netstat -rn Routing tables Destination Gateway Flags Refcnt Use Interface 127.0.0.1 127.0.0.1 UH 1 132 lo0 172.16.12.0 172.16.12.2 U 26 49041 le0 1 9 6 / % ping -s almond

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

本文由筱驀釹贡献

本文由筱驀釹贡献 本 文 由 筱 驀 釹 贡 献 ppt 文 档 可 能 在 WAP 端 浏 览 体 验 不 佳 建 议 您 优 先 选 择 TXT, 或 下 载 源 文 件 到 本 机 查 看 Linux 操 作 系 统 Linux 操 作 系 统 第 一 部 分 介 绍 与 安 装 Linux 的 由 来 : Linux 的 由 来 : 的 由 来 Linus Torvalds 1.Linux 的 版 本 1.Linux

More information

ARP ICMP

ARP ICMP ARP ICMP 2 9-1 ARP 9-2 ARP 9-3 ARP 9-4 ICMP 9-5 ICMP 9-6 ICMP 9-7 ICMP 3 ARP ICMP TCP / IP, IP ARP ICMP 3 IP, ARP ICMP IP ARP ICMP 2, 4 9-1 ARP, MAC, IP IP, MAC ARP Address Resolution Protocol, OSI ARP,,

More information

1

1 1 2 3 4 5 GNUDebugger 6 7 void main(int argc, char **argv){ vulncpy(argv[1]); return; } void vulncpy(char *a){ char buf[30]; strcpy(buf, a); return; } *argv[1] buf Shellcode *argv[1]... &buf &buf 8 strcpy

More information

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

ebook15-C

ebook15-C C 1 1.1 l s ( 1 ) - i i 4. 14 - d $ l s -ldi /etc/. /etc/.. - i i 3077 drwxr-sr-x 7 bin 2048 Aug 5 20:12 /etc/./ 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /etc/../ $ls -ldi /. /..... i 2 2 drwxr-xr-x 13 root

More information

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub VoIP... 2... 2 Abstract... 2... 3... 3 RTP...3 Socket...4...6...7 IP...9 Config Two Voice-hub... 10 1 12 VoIP VoIP voice-hub voice-hub Abstract At the beginning of this paper, we introducted the essential

More information

<4D6963726F736F667420576F7264202D204C696E7578CFB5CDB3B5F7D3C3C1D0B1ED>

<4D6963726F736F667420576F7264202D204C696E7578CFB5CDB3B5F7D3C3C1D0B1ED> Linux 系 统 调 用 列 表 雷 镇 (leicool@21cn.com) http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html ( 王 伟 注 : 本 文 是 从 作 者 的 博 文 上 拷 贝 来 的, 进 行 了 重 排 版 ) 简 介 : 本 文 列 出 了 大 部 分 常 见 的 Linux

More information

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco Windows RTEMS 1 Danilliu MMI TCP/IP 80486 QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos ecos Email www.rtems.com RTEMS ecos RTEMS RTEMS Windows

More information

財金資訊-80期.indd

財金資訊-80期.indd IPv6 / LINE YouTube TCP/IP TCP (Transmission Control Protocol) IP (Internet Protocol) (node) (address) IPv4 168.95.1.1 IPv4 1981 RFC 791 --IP IPv4 32 2 32 42 IP (Internet Service Provider ISP) IP IP IPv4

More information

DOS下常用的网络命令.PDF

DOS下常用的网络命令.PDF DOS .... 1.1... 1.2... DOS... 2.1 ARP... 2.2 Finger... 2.3 Ftp... 2.4 Nbtstat... 2.5 Netstat... 2.6 Ping... 2.7 Rcp... 2.8 Rexec... 2.9 Route... 2.10 Rsh... 2.11 Tftp... 2.12 Tracert... 1 1 1 1 1 2 3 4

More information

PowerPoint Presentation

PowerPoint Presentation 立 97 年度 SNMG 練 DNS & BIND enc1215@gmail.com DNS BIND Resolver Named 理 Named 更 DNS DNS Reference 2 DNS DNS 料 domain ip DNS server DNS server 理 DNS server DNS DNS 狀. root name server 理 3 DNS 狀 DNS (2). com

More information

How to Debug Tuxedo Server printf( Input data is: %s, inputstr); fprintf(stdout, Input data is %s, inputstr); fprintf(stderr, Input data is %s, inputstr); printf( Return data is: %s, outputstr); tpreturn(tpsuccess,

More information

Microsoft Word - linux命令及建议.doc

Microsoft Word - linux命令及建议.doc Linux 操 作 系 统 命 令 集 1 基 本 命 令 查 看 系 统 信 息 : uname -a 修 改 密 码 : passwd 退 出 : logout(exit) 获 取 帮 助 : man commands 2 文 件 和 目 录 命 令 显 示 当 前 工 作 目 录 : pwd 改 变 所 在 目 录 : cd cd - 切 换 到 上 一 次 使 用 的 目 录 cd 切 换

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force Steven Shiau steven@nchc.gov.tw National Center for High-Performance Computing Sep 10, 2002 1 Outline 1. 2. 3. Service DHCP, TFTP, NFS, NIS 4. 5. 2 DRBL (diskless remote boot

More information

内 容 1 2 3 4 培 训 目 标 基 础 知 识 常 用 监 控 命 令 在 实 战 中 综 合 运 用 2

内 容 1 2 3 4 培 训 目 标 基 础 知 识 常 用 监 控 命 令 在 实 战 中 综 合 运 用 2 Linux 常 用 监 控 命 令 介 绍 基 础 应 用 组 梁 若 羽 2011-07-12 1 内 容 1 2 3 4 培 训 目 标 基 础 知 识 常 用 监 控 命 令 在 实 战 中 综 合 运 用 2 培 训 目 标 掌 握 常 用 监 控 命 令 的 用 途 和 启 用 方 法 熟 悉 各 个 关 键 输 出 参 数 的 真 实 含 义 了 解 Linux 操 作 系 统 的 一

More information

SL2511 SR Plus 操作手冊_單面.doc

SL2511 SR Plus 操作手冊_單面.doc IEEE 802.11b SL-2511 SR Plus SENAO INTERNATIONAL CO., LTD www.senao.com - 1 - - 2 - .5 1-1...5 1-2...6 1-3...6 1-4...7.9 2-1...9 2-2 IE...11 SL-2511 SR Plus....13 3-1...13 3-2...14 3-3...15 3-4...16-3

More information

A9RBC8B.tmp

A9RBC8B.tmp CCIE A B 1B 255.255.255.0 255.255.255.224 002 A B 1 1A B 2A B ARP MAC 3A B 192.168.26.2 4A B ARP 003 Wireshark Windows Wireshark 1. http://www.wireshark.org/download.html B 2. Wireshark Capture Interfaces

More information

Web

Web Email: tian@dr.com http://www.digiark.com/tian Web 1. 2. 3. 4. 5. 6. Internet Internet (Hacker) Internet web IP 1 Internet UNIX Windows VLAN Internet IP 2 Internet FTP TELNET PING IP 8 telnet FTP RLOGIN

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

ebook140-11

ebook140-11 11 VPN Windows NT4 B o r d e r M a n a g e r VPN VPN V P N V P N V P V P N V P N TCP/IP 11.1 V P N V P N / ( ) 11.1.1 11 V P N 285 2 3 1. L A N LAN V P N 10MB 100MB L A N VPN V P N V P N Microsoft PPTP

More information

/ / (FC 3)...

/ / (FC 3)... Modbus/TCP 1.0 1999 3 29 Andy Swales Schneider aswales@modicon.com ... 2 1.... 3 2.... 3 2.1.. 3 2.2..4 2.3..4 2.4... 5 3.... 5 3.1 0... 5 3.2 1... 5 3.3 2... 6 3.4 / /... 7 4.... 7 5.... 8 5.1 0... 9

More information

IP-Routing-05.pdf

IP-Routing-05.pdf RI P R I P - 2 RIP -1 R I P - 2 DV RIP -1 RIP-2 16... RIP-2 RIP-2 RIP -1 R I P - 2 RIP-2 RIP-2 RIP-2 V L S M disc ontiguous addr ess sp ace C I D R Cla ssless In ter -Dom ain Routing 121 1 2 2 IP RIP-2

More information

ebook12-1

ebook12-1 API N e t B I O S Wi n s o c k A P I Wi n s o c k 1 N e t B I O S Wi n s o c k A P I N e t B I O S O S / 2 D O S 2 3 4 Wi n d o w s Wi n d o w s 1 NetBIOS Network Basic Input/Output System, NetBIOS A P

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force DRBL steven@nchc.gov.tw, c00hkl00@nchc.gov.tw National Center for High-Performance Computing http://www.nchc.gov.tw Jan, 2003 1 2003/1/28 ( ) 09:00-10:30 10:40-12:00 Linux 13:00-14:30

More information

Microsoft Word - PS2_linux_guide_cn.doc

Microsoft Word - PS2_linux_guide_cn.doc Linux For $ONY PlayStatioin2 Unofficall General Guide Language: Simplified Chinese First Write By Beter Hans v0.1 Mail: hansb@citiz.net Version: 0.1 本 人 是 菜 鸟 + 小 白 欢 迎 指 正 错 误 之 处, 如 果 您 有 其 他 使 用 心 得

More information

新版 明解C言語入門編

新版 明解C言語入門編 328, 4, 110, 189, 103, 11... 318. 274 6 ; 10 ; 5? 48 & & 228! 61!= 42 ^= 66 _ 82 /= 66 /* 3 / 19 ~ 164 OR 53 OR 164 = 66 ( ) 115 ( ) 31 ^ OR 164 [] 89, 241 [] 324 + + 4, 19, 241 + + 22 ++ 67 ++ 73 += 66

More information

ebook67-9

ebook67-9 9 IP 9.1 I P 9-1 I P 9-1 d a e m o n U n i x d a e m o n d a e m o n [Perlman 1992] 10 R I P Routing Information Protocol I P 9-1 I P 30 I C M P 9. 5 r o u t e n e t s t a t route netstat UDP TCP ICMP

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force DRBL c00hkl00@nchc.gov.tw, steven@nchc.gov.tw National Center for High-Performance Computing http://www.nchc.gov.tw Dec, 2002 1 Outline 1. 2. DRBL 3. 4. Service DHCP, TFTP, NFS,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Linux 操 作 系 统 基 础 介 绍 课 程 目 标 及 要 求 了 解 Linux 操 作 系 统 的 登 入 方 式 掌 握 常 用 命 令 的 基 本 用 法 能 够 熟 练 在 各 个 目 录 转 换 Outline 1. Linux 操 作 系 统 简 介 2. Linux 操 作 系 统 的 登 录 3. Linux 操 作 系 统 的 目 录 结 构 4. 常 用 命 令 5.

More information

Microsoft PowerPoint - os_4.ppt

Microsoft PowerPoint - os_4.ppt 行 程 資 科 系 林 偉 川 行 程 概 念 行 程 與 程 式 主 要 的 不 同 點 : 程 式 是 被 放 在 外 部 的 儲 存 裝 置 如 磁 碟 上, 而 行 程 則 被 放 在 記 憶 體 中 程 式 在 儲 存 裝 置 中 是 靜 態 的, 而 行 程 在 記 憶 體 中 是 動 態 的, 它 會 隨 著 一 些 事 件 的 發 生 而 產 生 相 對 的 改 變 行 程, 就 是

More information

Microsoft PowerPoint - 03.IPv6_Linux.ppt [相容模式]

Microsoft PowerPoint - 03.IPv6_Linux.ppt [相容模式] IPv6 Linux (Cent OS 5.x) IPV6 2 IPv6 IPv6 IPv6 IPv6 IPv4 IPv6 (RFC 2460) Dual Stack Tunnel 3 4 IPv6 Native IP IPv6, DHCPv6 IPv6 IP IPv6 Tunnel Broker IPv4, Tunnel IPv6 Tunnel Broker Client IPv6 ( ) IPv6

More information

<4D6963726F736F667420506F776572506F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA4544350A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>

<4D6963726F736F667420506F776572506F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA4544350A1A24950D0ADD2E9BACD4950B5D8D6B72E707074> 项 目 一 : 初 识 计 算 机 网 络 任 务 三 熟 悉 TCP/IP 协 议 和 IP 地 址 一. 学 习 要 求 : 学 习 要 求 及 难 点 1. 了 解 IP 协 议 TCP 协 议 和 UDP 协 议 2. 熟 悉 IP 地 址 的 划 分 和 分 类 3. 了 解 IPV6 的 地 址 结 构 二. 难 点 : 1. IP 地 址 三. 学 时 : 1. 理 论 教 学 :6

More information

.. 3 N

.. 3 N 1 .. 3 N9.. 4 5.. 6 7.. 8 20.. 21 23.. 24.. 25 26.. 27.. 28.. 29 2 (Cyber Café) Linux (LAN) Linux Public Home 3 K12LTSP K12LTSPFedora Core 4 (Linux)LTSP Linux (command line interface) (Graphical User Interface,

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5 6 6-1 6-2 Socket 6-2-1 Socket 6-2-2 TcpClient 6-3 6-3-1 Socket.Connect 6-3-2 TcpClient.Connect 6-4 6-4-1 Socket.Send / Receive 6-4-2 NetworkStream 6-5 6-5-1 Socket.Close 6-5-2 TcpClient.Close 6-6 DateTime

More information

epub 33-8

epub 33-8 8 1) 2) 3) A S C I I 4 C I / O I / 8.1 8.1.1 1. ANSI C F I L E s t d i o. h typedef struct i n t _ f d ; i n t _ c l e f t ; i n t _ m o d e ; c h a r *_ n e x t ; char *_buff; /* /* /* /* /* 1 5 4 C FILE

More information

ch08.PDF

ch08.PDF 8-1 CCNA 8.1 CLI 8.1.1 8-2 8-3 8.1.21600 2500 1600 2500 / IOS 8-4 8.2 8.2.1 A 5 IP CLI 1600 2500 8-5 8.1.2-15 Windows 9598NT 2000 HyperTerminal Hilgraeve Microsoft Cisco HyperTerminal Private Edition (PE)

More information

05_資源分享-NFS及NIS.doc

05_資源分享-NFS及NIS.doc 5 NFS NFS Server NFS Client NIS NIS 5-0 (Network File System, NFS) Unix NFS mount NFS... Network Information Service NIS Linux NIS NIS NIS / / /etc/passwd /etc/group NFS NIS 5-1 NFS 5-1-1 NFS NFS Network

More information

C/C++ - 字符串与字符串函数

C/C++ - 字符串与字符串函数 C/C++ Table of contents 1. 2. 3. 4. 1 char C 2 char greeting [50] = " How " " are " " you?"; char greeting [50] = " How are you?"; 3 printf ("\" Ready, go!\" exclaimed John."); " Ready, go!" exclaimed

More information

Bus Hound 5

Bus Hound 5 Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus

More information

epub 61-2

epub 61-2 2 Web Dreamweaver UltraDev Dreamweaver 3 We b We b We Dreamweaver UltraDev We b Dreamweaver UltraDev We b We b 2.1 Web We b We b D r e a m w e a v e r J a v a S c r i p t We b We b 2.1.1 Web We b C C +

More information

工程师培训

工程师培训 .1 TCP/IP TCP/IP 1 .2.2.1 Host 1960 S 1970 S Host Low Speed Lines 1970 S 1980 S pc Server Local Interneting 1980 S 1990 S Branch. pc Branch. WAN Branch. pc pc IBM SNA IBM X.25 2 .2.2 OSI OSI Application

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

PIC_SERVER (11) SMTP ( ) ( ) PIC_SERVER (10) SMTP PIC_SERVER (event driven) PIC_SERVER SMTP 1. E-

PIC_SERVER (11) SMTP  ( ) ( ) PIC_SERVER (10) SMTP  PIC_SERVER (event driven)  PIC_SERVER SMTP  1.  E- (2005-02-01) (2005-04-28) PIC_SERVER (10) SMTP E-mail PIC_SERVER (event driven) E-mail PIC_SERVER SMTP E-mail 1. E-mail E-mail 1 (1) (2) (3) (4) 1 1. 2 E-mail A E-mail B E-mail SMTP(Simple Mail Transfer

More information

版权声明

版权声明 SG3124 http://www.utt.com.cn 2000-2008 URL Internet Web EULA EULA UTT HiPER PN 0901-0003-001 DN PR-PMMU-1180.03-PPR-CN-1.0A ...1 1...2 1.1...2 1.2...2 1.3...3 1.4...3 2 1.4.1...3 1.4.2...4...5 2.1...5

More information

Microsoft PowerPoint - Socket programming.ppt [相容模式]

Microsoft PowerPoint - Socket programming.ppt [相容模式] Basic Concept of Socket Socket programming 位於傳輸層和應用層之間 socket 是一種可做雙向資料傳輸的通道 讓應用層可以傳送資料給 socket, 或是從 socket 接收資料 Jimmy 2011/3/29 Concept of Socket Relation between Socket and Application Socket 的概念和檔案代碼觀念相似,

More information

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2 Terminal Mode No User User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2 Mon1 Cam-- Mon- Cam-- Prohibited M04 Mon1 Cam03 Mon1 Cam03

More information

ebook71-13

ebook71-13 13 I S P Internet 13. 2. 1 k p p p P P P 13. 2. 2 1 3. 2. 3 k p p p 1 3. 2. 4 l i n u x c o n f P P P 13. 2. 5 p p p s e t u p 13. 2. 6 p p p s e t u p P P P 13. 2. 7 1 3. 2. 8 C a l d e r a G U I 13.

More information

VIDEOJET connect 7000 VJC-7000-90 zh- CHS Operation Manual VIDEOJET connect 7000 zh-chs 3 目 录 1 浏 览 器 连 接 7 1.1 系 统 要 求 7 1.2 建 立 连 接 7 1.2.1 摄 像 机 中 的 密 码 保 护 7 1.3 受 保 护 的 网 络 7 2 系 统 概 述 8 2.1 实 况

More information

ch09.PDF

ch09.PDF 9-1 / (TCP/IP) TCP/IP TCP/IP ( ) ICMP ARP RARP 9.1 TCP/IP 9.1.1 TCP/IP OSI TCP/IP (DARPA) DARPA TCP/IP UNIX Berkeley Software DistributionTCP/IP TCP/IP TCP/IP TCP/IP TCP/IP TCP/IP OSI - TCP/IP ( ) ( )

More information

<4D6963726F736F667420576F7264202D20383439342D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63>

<4D6963726F736F667420576F7264202D20383439342D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63> 第 4 单 元 搭 建 自 己 的 Web 站 点 本 单 元 通 过 学 习 架 构 Web 服 务 器, 实 现 Web 服 务, 管 理 Web 站 点, 了 解 Web 站 点 服 务 器 的 架 构 个 人 空 间 和 虚 拟 主 机 的 概 念, 掌 握 IIS 组 件 的 安 装 Web 站 点 的 创 建 管 理 站 点 属 性 选 项 卡 的 配 置 管 理 等 知 识,Web 网

More information

SEC-220

SEC-220 Session CERT/CC 60000 50000 40000 52,658 30000 26,829 20000 10000 0 2,412 1995 1999 2000 2001 Q1, 2002 Source: http://www.cert.org/stats/ CERT/CC 3000 2500 2000 2,437 1500 1000 500 0 171 1,065 1995

More information

新・解きながら学ぶC言語

新・解きながら学ぶC言語 330!... 67!=... 42 "... 215 " "... 6, 77, 222 #define... 114, 194 #include... 145 %... 21 %... 21 %%... 21 %f... 26 %ld... 162 %lf... 26 %lu... 162 %o... 180 %p... 248 %s... 223, 224 %u... 162 %x... 180

More information

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def Kaise s 2410 Board setting [1]. Device Driver Device Driver Linux s Kernel ARM s kernel s3c2410_kernel2.4.18_r1.1_change.tar.bz2 /usr/src (1) #cd /usr/src (2) #tar xfj s3c2410_kernel2.4.18_r1.1_change.tar.bz2

More information

ebook140-9

ebook140-9 9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

More information

9 Internet 10 Internet

9 Internet 10 Internet 1 2 3 4 5 6 Internet 7 8 9 Internet 10 Internet 11 12 1 1.1 1.2 1.3 1.4 1.5 1.6 1.1 1.1.1 20 50 20 60 ARPANET ARPANET Internet 20 70 ISO International Organization for Standardization TCP/IP 20 90 Internet

More information

ebook35-2

ebook35-2 2 2.1 Linux login Login: < > Password: < > Linux r o o t l o g o u t 2.2 Linux X Window Linux Linux Bourne ( b s h ) C ( c s h ) Korn ( k s h ) Bourne Steven Bourne UNIX Bourne bash Bourne C Bill Joy Bourne

More information

一、选择题

一、选择题 计 算 机 网 络 基 础 第 7 章 练 习 思 考 与 认 识 活 动 一 选 择 题 1. 下 面 命 令 中, 用 于 检 查 WINDOWS2000 下 TCP/IP 配 置 信 息 的 是 ( ) A. cmd B. nslookup C. ipconfig D. ping 2. 内 部 网 关 协 议 RIP 是 一 种 广 泛 使 用 的 基 于 距 离 矢 量 算 法 的 协 议

More information

Basics of Socket Programming Please check the referenced links for the further description and examples. 1 Procedures for Socket Implementation 1. Create the server application (e.g. a simple shellscript)

More information

(UTM???U_935_938_955_958_959 V2.1.9.1)

(UTM???U_935_938_955_958_959 V2.1.9.1) 192.16 www.sharetech.com.tw UTM 多 功 能 防 火 牆 管 理 者 手 冊 V 2.1.9.1 目 錄 第 一 章 安 裝 與 訊 息... 7 1-1 建 議 的 安 裝 設 定 圖... 8 1-2 軟 體 安 裝 設 定... 9 1-3 首 頁 訊 息... 14 1-4 型 號 與 功 能 對 照 表... 17 第 二 章 系 統 設 定... 19 2-1

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

一个开放源码的嵌入式仿真环境 ― SkyEye

一个开放源码的嵌入式仿真环境 ― SkyEye SkyEye SkyEye http://hpclab.cs.tsinghua.edu.cn/~skyeye/ I hear and I forget, I see and I remember, I do and I understand. SkyEye SkyEye SkyEye SkyEye SkyEye 1. SkyEye PC pervasive computing PC I O PDA

More information

计算机网络概论

计算机网络概论 1 repeater bridge router gateway V.S OSI Repeater(Hub) 1 Repeater 2 3 ( Hub 4 Bridge 1 Bridge 2 N N DL1 DL1 DL2 DL2 Ph1 Ph1 Ph2 Ph2 1 2 Bridge 3 MAC Ethernet FDDI MAC MAC Bridge 4 5 6 7 50873EA6, 00123456

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

Linux网络编程socket错误分析

Linux网络编程socket错误分析 Linux 网 络 编 程 socket 错 误 分 析 socket 错 误 码 : EINTR: 4 阻 塞 的 操 作 被 取 消 阻 塞 的 调 用 打 断 如 设 置 了 发 送 接 收 超 时, 就 会 遇 到 这 种 错 误 只 能 针 对 阻 塞 模 式 的 socket 读, 写 阻 塞 的 socket 时,-1 返 回, 错 误 号 为 INTR 另 外, 如 果 出 现 EINTR

More information

ebook70-11

ebook70-11 11 L i n u x p i n e M e s s e n g e r P P P I S 11.1 s e n d m a i l U N I X O p e n L i n u x U N I X O p e n L i n u x O p e n L i n u x s e n d m a i l O p e n L i n u x ( 11-1 ) 11-1 O p e n L i n

More information

下表所示, 此时 protocol 参数可使用缺省值 0 ; 但如果还有多个协议供选择, 则必须使用 protocol 参数来标识 协议族 ( 仅考虑 IP 协议 传送类型 protocol 参数常量 协议类型 族 ) (/usr/include/linux/in.h) SOCK_STREAM IP

下表所示, 此时 protocol 参数可使用缺省值 0 ; 但如果还有多个协议供选择, 则必须使用 protocol 参数来标识 协议族 ( 仅考虑 IP 协议 传送类型 protocol 参数常量 协议类型 族 ) (/usr/include/linux/in.h) SOCK_STREAM IP 实验 2 参考资料 Linux/Unix:Socket 函数库 Linux Socket 函数库是从 Berkeley 大学开发的 BSD UNIX 系统中移植过来的 BSD Socket 接口是在众多 Unix 系统中被广泛支持的 TCP/IP 通信接口,Linux 下的 Socket 程序设计, 除了微小的差别之外, 也适用于大多数其它 Unix 系统 Socket 的使用和文件操作比较类似 如同文件的读

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

Go构建日请求千亿微服务最佳实践的副本

Go构建日请求千亿微服务最佳实践的副本 Go 构建 请求千亿级微服务实践 项超 100+ 700 万 3000 亿 Goroutine & Channel Goroutine Channel Goroutine func gen() chan int { out := make(chan int) go func(){ for i:=0; i

More information

NSC-161

NSC-161 IP Session IP? IP Cisco IP IP IP IP IP? LAN Software Bluetooth,, 802.11 IP IP IP QoS IP Trust Domain (TD 1 ) TD 2 AR AR AP AP (MN) (MN) IP IP ( ) (MR) IP LAN MR (AP) IP 802.11 (AL) LAN/PAN 802.11, 802.15,

More information

專業式報告

專業式報告 IP POWER 9258 1U IP POWER 9258IU 說 : V1.38 : 2006. 08-1 - VER. X.X, FCC CE 1. IP POWER 9258. 2. 9258 3. 9258-2 - 1....4... 9258... 2....5...... 3....6 4....8...... 5....9... PC WINDOWS... 6.... 11 7. IE...

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot OSI OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Protocol OSI OSI OSI OSI OSI O S I 2-1 Application

More information

13 A DSS B DSS C DSS D DSS A. B. C. CPU D. 15 A B Cache C Cache D L0 L1 L2 Cache 16 SMP A B. C D 17 A B. C D A B - C - D

13 A DSS B DSS C DSS D DSS A. B. C. CPU D. 15 A B Cache C Cache D L0 L1 L2 Cache 16 SMP A B. C D 17 A B. C D A B - C - D 2008 1 1 A. B. C. D. UML 2 3 2 A. B. C. D. 3 A. B. C. D. UML 4 5 4 A. B. C. D. 5 A. B. C. D. 6 6 A. DES B. RC-5 C. IDEA D. RSA 7 7 A. B. C. D. TCP/IP SSL(Security Socket Layer) 8 8 A. B. C. D. 9 9 A. SET

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

QL1880new2.PDF

QL1880new2.PDF ADSL Modem 1 MODEM 56K MODEM 128K ISDN INTERNET ADSL Modem VOD ADSL ADSL 2 1.1 ADSL 1.2 1.3 KM300A 2.1 2.2 2.3 2.4 2.5 KM300A 2.6 web 2.7 1.1ADSL 1.2 1.3 2.1 ADSL 2.2 ADSL 3 ADSL KM300A ADSL KM300A DIY

More information

プログラムの設計と実現II

プログラムの設計と実現II UNIX C ls mkdir man http://www.tj.chiba-u.jp/lecture/prog2/ Ctrl+x, Ctrl+s ( )..[4]% gcc Wall o hoge hoge.c..[5]%./hoge 1 : 1 2 : 2 3 : 3 4 : 0 6..[6]% (! )..[4]% gcc Wall o hoge hoge.c..[5]%!g gcc Wall

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2 (2005-01-26) (2005-01-26) (2005-02-27) PIC_SERVER (9) VB TCP/UDP Visual Basic Microsoft Winsock Control (MSWINSCK.OCX) UDP TCP Client Server Visual Basic UDP/TCP PIC_SERVER UDP/TCP 1. Microsoft Winsock

More information

( CIP) /,. - :, 2004. 9 ISBN 7-81094-144-5... - -. TP312 CIP ( 2004 ) 057057 21 : ( 2 4 610054 ) : : : : 787960 1 /16 : 21 : 347 : 2004 9 : 2004 9 : I

( CIP) /,. - :, 2004. 9 ISBN 7-81094-144-5... - -. TP312 CIP ( 2004 ) 057057 21 : ( 2 4 610054 ) : : : : 787960 1 /16 : 21 : 347 : 2004 9 : 2004 9 : I 1 ( CIP) /,. - :, 2004. 9 ISBN 7-81094-144-5... - -. TP312 CIP ( 2004 ) 057057 21 : ( 2 4 610054 ) : : : : 787960 1 /16 : 21 : 347 : 2004 9 : 2004 9 : ISBN 7 81094-142 9 /TP83 : 1-5000 : 29. 80 ,,,,,,,,,,,,,,,,,,,,,,,,

More information

《计算机网络》实验指导书

《计算机网络》实验指导书 1 实 验 一 网 络 组 建 与 管 理 一. 实 验 目 的 1. 掌 握 平 行 双 绞 线 和 交 叉 双 绞 线 的 制 作 方 法 ( 初 级 ) 2. 掌 握 对 等 网 和 代 理 服 务 器 网 络 的 组 建 ( 初 级 ) 3. 会 用 ipconfig 和 ping 命 令 ( 初 级 ) 4. 掌 握 网 络 中 文 件 夹 共 享 和 打 印 机 共 享 ( 初 级 )

More information

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在 计 算 机 网 络 ( 第 4 版 ) 课 件 第 1 章 计 算 机 网 络 概 述 郭 庆 北 Ise_guoqb@ujn.edu.cn 2009-02-25 第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特

More information

C3_ppt.PDF

C3_ppt.PDF C03-101 1 , 2 (Packet-filtering Firewall) (stateful Inspection Firewall) (Proxy) (Circuit Level gateway) (application-level gateway) (Hybrid Firewall) 2 IP TCP 10.0.0.x TCP Any High Any 80 80 10.0.0.x

More information

IP Access Lists IP Access Lists IP Access Lists

IP Access Lists IP Access Lists IP Access Lists Chapter 10 Access Lists IP Access Lists IP Access Lists IP Access Lists Security) IP Access Lists Access Lists (Network router For example, RouterA can use an access list to deny access from Network 4

More information