DOC PREVIEW
CMU 15441 Computer Networking - Exam

This preview shows page 1-2-3-4-5-6 out of 17 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Exam FeedbackMar. 8, 2006Traceroute slide incorporated March 24Pigeon slide added May 10Further additions not expectedTopicsTopicsreading listthe traceroute/netmask questionfinger client: errors & mythsL13b_Exam15-441Computer Networking– 2 –15-441SynchronizationTextbookTextbookRelevant nowSection 2.5 (Reliable Transfer)Chapter 5: Transport (ok if you read 5.3 lightly)Chapter 6: Congestion ControlLooking Backward / ForwardSection 3.3 (ATM)Section 4.4 (Multicast), 4.5 (MPLS)Section 9.1 (DNS)– 3 –15-441OutlineThe pigeon questionThe pigeon questionThe netmask questionThe netmask questionThe finger questionThe finger questionMythsMyths– 4 –15-441The Pigeon QuestionBob...Bob......inspects and makes decisions based on IP addresses....is a network-layer entity, typically called a router.Kelly...Kelly......“strengthens” packets which are “tired”Kelly could be a repeater, but...Kelly......also decides where packets should goKelly can't be a physical-layer device»Kelly's decisions are based on something “outside of” the IP addressesoKelly must be a link-layer device – in this case, a bridge.– 5 –15-441Size of Netmask IncreasesAN 2ISP 2ISP 1ISP 3AN 4AN 1AN 5AN 3HostHostHostHostHostHostNet.HostNet IDNet IDNet IDNet IDNextNextNextNextForwarding TableAs you get closer to the destination, the set of hosts in your target area becomes smaller, i.e. the Net ID growns and the Host ID shrinks.Analogy: when you travel to a hotel, you first get to the right continent, then the right country, then the right city, and finally, the right hotel.– 6 –15-441Size of Netmask IncreasesCasesCasesDeparting from a host with only one linkThat link probably has a “default route” entry»0.0.0.0/0Heading toward “the backbone”Probably more default-route entries (mask stays 0 bits long)Departing “the backbone” for target's ISPOne entry probably covers the ISP's address space»x.y/16Departing the ISP to the target organization's networkOne entry probably covers the target organization»x.y.z/24 Arriving at the destination host via point-to-point linkThe table entry for that link on the penultimate host is like»x.y.z.w/32– 7 –15-441fingerProblemProblemHere is a finger clientConnect to TCP port 79send usernameprint out server's responseSay what's wrongThis was a “target-rich environment”– 8 –15-441finger.cint main(int argc, char *argv[]){ int s, len; struct sockaddr_in server; struct hostent *hp; char c, buf[8192]; if (argc != 3) { fprintf(stderr, "usage: %s host user\n", argv[0]); exit(9); } server.sin_family = AF_INET; server.sin_port = 79; server.sin_addr.s_addr = gethostbyname(argv[1]); s = socket(AF_INET, SOCK_DGRAM, 0); bind(s, (struct sockaddr *) &server, sizeof (server)); write(s, argv[2], strlen(argv[2])); write(s, "\r\n", 2); if ((len = read(s, buf, sizeof (buf))) > 0) write(1, buf, len); exit(0);}– 9 –15-441finger.cint main(int argc, char *argv[]){ int s, len; struct sockaddr_in server; struct hostent *hp; char c, buf[8192]; if (argc != 3) { fprintf(stderr, "usage: %s host user\n", argv[0]); exit(9); } server.sin_family = AF_INET; server.sin_port = 79; server.sin_addr.s_addr = gethostbyname(argv[1]); s = socket(AF_INET, SOCK_DGRAM, 0); bind(s, (struct sockaddr *) &server, sizeof (server)); write(s, argv[2], strlen(argv[2])); write(s, "\r\n", 2); if ((len = read(s, buf, sizeof (buf))) > 0) write(1, buf, len); exit(0);}– 10 –15-441finger.c server.sin_family = AF_INET; server.sin_port = 79; server.sin_addr.s_addr = gethostbyname(argv[1]); s = socket(AF_INET, SOCK_DGRAM, 0); bind(s, (struct sockaddr *) &server, sizeof (server)); write(s, argv[2], strlen(argv[2])); write(s, "\r\n", 2); if ((len = read(s, buf, sizeof (buf))) > 0) write(1, buf, len);Pretty much all of this is wrongPretty much all of this is wrong– 11 –15-441finger.c server.sin_family = AF_INET; server.sin_port = 79; server.sin_addr.s_addr = gethostbyname(argv[1]); s = socket(AF_INET, SOCK_DGRAM, 0); bind(s, (struct sockaddr *) &server, sizeof (server)); write(s, argv[2], strlen(argv[2])); write(s, "\r\n", 2); if ((len = read(s, buf, sizeof (buf))) > 0) write(1, buf, len);– 12 –15-441finger.cBadBad server.sin_port = 79;GoodGood server.sin_port = htons(79);BadBad server.sin_addr.s_addr = gethostbyname(argv[1]);GoodGood hp = gethostbyname(argv[1]); memmove(&server.sin_addr, hp->h_addr, hp->h_length);– 13 –15-441finger.cBadBad s = socket(AF_INET, SOCK_DGRAM, 0);GoodGood s = socket(AF_INET, SOCK_STREAM, 0);BadBad bind(s, (struct sockaddr *) &server, sizeof (server));GoodGood connect(s, (struct sockaddr *) &server, sizeof (server));– 14 –15-441finger.cBadBad if ((len = read(s, buf, sizeof (buf))) > 0) write(1, buf, len);GoodGood while ((len = read(s, buf, sizeof (buf))) > 0) write(1, buf, len);– 15 –15-441MythsMust close sockets before exit()Must close sockets before exit()If that were true we'd all be in big trouble!exit()'s job is to clean up process resourcessizeof(buf) == 4That's like a real problem...sizeof (pretty much any pointer) == 4 (on many machines)sizeof (array) is, well, the size of the array, in bytes»“Doesn't work” for array parameters to a function»They're actually pointers (call by reference), not arrayswrite(stdout, ...)That's mixing metaphors – file descriptors aren't stdio streamsYou could write write(fileno(stdout), ...)But if fileno(stdout) != 1 something very very odd is going on– 16 –15-441MythsCannot use write() and read() on UDP socketsCannot use write() and read() on UDP socketsSure you can!read() doesn't block to wait for server responseread() doesn't block to wait for server responseYes, it does!strings must be converted to network byte orderstrings must be converted to network byte orderThe network byte order for strings is:Send the first byte, then the second, then the third...“Byte order” is a problem when you have N-byte chunksInteger is a 4-byte chunkYou could have a string byte-order problem with UnicodeOut of scope– 17 –15-441MythsBuffer overflows!Buffer overflows! write(s, argv[2], strlen(argv[2]));We aren't putting anything into a buffer!Certainly not one of fixed size, without a length checkThe kernel might be putting these bytes in a bufferIf the kernel does that unsafely


View Full Document

CMU 15441 Computer Networking - Exam

Documents in this Course
Lecture

Lecture

14 pages

Lecture

Lecture

19 pages

Lecture

Lecture

14 pages

Lecture

Lecture

78 pages

Lecture

Lecture

35 pages

Lecture

Lecture

4 pages

Lecture

Lecture

4 pages

Lecture

Lecture

29 pages

Lecture

Lecture

52 pages

Lecture

Lecture

40 pages

Lecture

Lecture

44 pages

Lecture

Lecture

41 pages

Lecture

Lecture

38 pages

Lecture

Lecture

40 pages

Lecture

Lecture

13 pages

Lecture

Lecture

47 pages

Lecture

Lecture

49 pages

Lecture

Lecture

7 pages

Lecture

Lecture

18 pages

Lecture

Lecture

15 pages

Lecture

Lecture

74 pages

Lecture

Lecture

35 pages

Lecture

Lecture

17 pages

lecture

lecture

13 pages

Lecture

Lecture

21 pages

Lecture

Lecture

14 pages

Lecture

Lecture

53 pages

Lecture

Lecture

52 pages

Lecture

Lecture

40 pages

Lecture

Lecture

11 pages

Lecture

Lecture

20 pages

Lecture

Lecture

39 pages

Lecture

Lecture

10 pages

Lecture

Lecture

40 pages

Lecture

Lecture

25 pages

lecture

lecture

11 pages

lecture

lecture

7 pages

Lecture

Lecture

10 pages

lecture

lecture

46 pages

lecture

lecture

7 pages

Lecture

Lecture

8 pages

lecture

lecture

55 pages

lecture

lecture

45 pages

lecture

lecture

47 pages

lecture

lecture

39 pages

lecture

lecture

33 pages

lecture

lecture

38 pages

lecture

lecture

9 pages

midterm

midterm

16 pages

Lecture

Lecture

39 pages

Lecture

Lecture

14 pages

Lecture

Lecture

46 pages

Lecture

Lecture

8 pages

Lecture

Lecture

40 pages

Lecture

Lecture

11 pages

Lecture

Lecture

41 pages

Lecture

Lecture

38 pages

Lecture

Lecture

9 pages

Lab

Lab

3 pages

Lecture

Lecture

53 pages

Lecture

Lecture

51 pages

Lecture

Lecture

38 pages

Lecture

Lecture

42 pages

Lecture

Lecture

49 pages

Lecture

Lecture

63 pages

Lecture

Lecture

7 pages

Lecture

Lecture

51 pages

Lecture

Lecture

35 pages

Lecture

Lecture

29 pages

Lecture

Lecture

65 pages

Lecture

Lecture

47 pages

Lecture

Lecture

41 pages

Lecture

Lecture

41 pages

Lecture

Lecture

32 pages

Lecture

Lecture

35 pages

Lecture

Lecture

15 pages

Lecture

Lecture

52 pages

Lecture

Lecture

16 pages

Lecture

Lecture

4 pages

lecture

lecture

27 pages

lecture04

lecture04

46 pages

Lecture

Lecture

46 pages

Lecture

Lecture

13 pages

lecture

lecture

41 pages

lecture

lecture

38 pages

Lecture

Lecture

40 pages

Lecture

Lecture

25 pages

Lecture

Lecture

38 pages

lecture

lecture

11 pages

Lecture

Lecture

42 pages

Lecture

Lecture

12 pages

Lecture

Lecture

36 pages

Lecture

Lecture

46 pages

Lecture

Lecture

35 pages

Lecture

Lecture

34 pages

Lecture

Lecture

9 pages

lecture

lecture

49 pages

class03

class03

39 pages

Lecture

Lecture

8 pages

Lecture 8

Lecture 8

42 pages

Lecture

Lecture

20 pages

lecture

lecture

29 pages

Lecture

Lecture

9 pages

lecture

lecture

46 pages

Lecture

Lecture

12 pages

Lecture

Lecture

24 pages

Lecture

Lecture

41 pages

Lecture

Lecture

37 pages

lecture

lecture

59 pages

Lecture

Lecture

47 pages

Lecture

Lecture

34 pages

Lecture

Lecture

38 pages

Lecture

Lecture

28 pages

Lecture

Lecture

21 pages

Lecture

Lecture

15 pages

Lecture

Lecture

9 pages

Project

Project

20 pages

Lecture

Lecture

40 pages

L13b_Exam

L13b_Exam

17 pages

Lecture

Lecture

48 pages

Lecture

Lecture

10 pages

Lecture

Lecture

52 pages

21-p2p

21-p2p

16 pages

lecture

lecture

77 pages

Lecture

Lecture

18 pages

Lecture

Lecture

62 pages

Lecture

Lecture

25 pages

Lecture

Lecture

24 pages

Project

Project

20 pages

Lecture

Lecture

47 pages

Lecture

Lecture

38 pages

Lecture

Lecture

35 pages

Roundup

Roundup

45 pages

Lecture

Lecture

47 pages

Lecture

Lecture

39 pages

Lecture

Lecture

13 pages

Midterm

Midterm

22 pages

Project

Project

26 pages

Lecture

Lecture

11 pages

Project

Project

27 pages

Lecture

Lecture

10 pages

Lecture

Lecture

50 pages

Lab

Lab

9 pages

Lecture

Lecture

30 pages

Lecture

Lecture

6 pages

r05-ruby

r05-ruby

27 pages

Lecture

Lecture

8 pages

Lecture

Lecture

28 pages

Lecture

Lecture

30 pages

Project

Project

13 pages

Lecture

Lecture

11 pages

Lecture

Lecture

12 pages

Lecture

Lecture

48 pages

Lecture

Lecture

55 pages

Lecture

Lecture

36 pages

Lecture

Lecture

17 pages

Load more
Download Exam
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Exam and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Exam 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?