우선은 tcp/ip에 대한 이론 서적을 한 권 구하는 것이 좋겠습니다. 아마 서점에 가면 많이 있을겁니다. 또는 지금 사용하고 계시는 교재를
참고해도 될 것 같습니다.
그런 다음, 문제에서 말하는 것처럼 tcp/ip를 사용하는 응용프로그램을 하나 선택하십시오. tcp를 사용하는 telnet, ftp, http와 같은 것 중에서 하나를 선택하거나, udp를 사용하는 tftp, VoIP(좀 광범위하지만) 등에서 하나를 선택하십시오. 그런데, tcp가 동작하는 것이 좀 더
복잡하니까, tcp 위에서 돌아가는 응용프로그램을 선택하면 할 말이
더 많을 것 같습니다.
응용 프로그램을 http를 사용하는 경우에 대해 간단히 예를 들어보겠습니다.
1. 브라우저의 창에 www.abc.co.kr 이라고 입력한 후에 엔터키를 누릅니다.
2. pc는 우선 abc.co.kr이라는 도메인의 ip 주소를 알기 위해서 dns 서버로 문의를 보냅니다.
3. 이 때 미리 설정되어 있는 dns 서버의 주소가 pc의 주소와 다른 경우라면 pc는 설정된 게이트웨이(라우터 또는 L3 스위치, 방화벽 등)의
mac 주소(레이어 2 주소)를 알아내기 위하여 arp 프로토콜을 동작시킵니다.
4. 이런 과정을 거쳐 abc.co.kr의 ip 주소가 192.168.1.1이라는 것을
알아내면, 목적지 포트 번호(destination port number)가 80번인 tcp
세그먼트를 만들어 3층인 ip에게로 내려보냅니다. 이제 tcp
three-way handshake open 이라는 과정을 거쳐 목적지의 tcp와 세션을 시작하는 절차가 시작되겠죠? 이 과정을 좀 더 상세히 설명을 하면
좋겠습니다. 각 tcp 세그먼트의 플래그(flag) 값 설정에 대해 이해를
하시면 좋겠습니다.
5. 레이어 3인 ip는 목적지와 출발지의 ip 주소 및 기타 ip header 정보를 추가하여 레이어 2로 내려보냅니다. 여기서도 많은 설명과 그림이
나올 수 있겠습니다.
6. 레이어 2인 ethernet, ppp, hdlc, frame relay, atm 등등에서는 레이어 3에서 받은 ip 패킷을 인접한 장비에게 전송합니다. 여기서도 또
많은 설명이...
7. 중간에 있는 라우터와 스위치를 거쳐 목적지까지 도달하면, 목적지의 서버가 응답을 합니다. 이렇게 양단의 tcp 간에 접속이 이루어 지고, 응용프로그램간에 (여기서는 http 간에) 통신이 이루어집니다.
8. 통신 도중에 윈도우잉(windowing), 순서번호(sequence number),
확인번호(acknowledgement number)등을 이용한 흐름제어와 에러복구 과정에 대한 설명을 하시면 되겠습니다.
대충 뼈대만 말씀드렸는데, 학생별로 애플리케이션 프로그램만
telnet, ftp 등으로 바꾸어 설명하면 훌륭한 레포트가 될 수 있을 것 같습니다.
나중에 완성된 레포트를 이 카페에 하나 올려주시면 다른 분들이
tcp/ip 를 이해하는데 많은 도움이 될 것 같습니다. ^^ㆀ