TCP/IP 프로그래밍 - TCP 연결형 동기식 채팅 프로그램
- 최초 등록일
- 2010.02.20
- 최종 저작일
- 2009.10
- 19페이지/ 한컴오피스
- 가격 2,500원
소개글
본 레포트는 TCP/IP 소켓 프로그래밍의 TCP 연결형 동기식 채팅 프로그램의
캡춰화면과 소스코드 및 해설이 담긴 레포트입니다.
TCP 통신, 버퍼, 시스템 콜에 대한 대략적인 내용또한 자세하게 담겨 있습니다.
서버와 클라이언트가 TCP 동기식 연결로 채팅을 수행합니다.
OS : Windows
LANG : Win32 Console Application BASE C
목차
1. TCP 통신의 개요
2. 버 퍼
3. 시스템 콜과 내부의 처리
4. 연결형 채팅 프로그램의 개요와 흐름
5. 프로그램 소스와 설명
가. 서버 프로그램 - myserver.c
나. 클라이언트 프로그램 - myclient.c
6. 프로그램 실행화면
7. 기 타
본문내용
1. TCP 통신의 개요
TCP란 Transmission Control Protocol의 약자로서, TCP/IP 모델의 트랜스포트 계층에 해당하는
프로토콜이다.
TCP는 데이터가 상대방에게 제대로 전달이 되었는가를 확인하는 메커니즘이 포함되어 있다.
이 때문에 전체적인 통신 속도는 약간 저하되지만, 대신 신뢰성 있는 통신 서비스를 제공해준다.
TCP에서 송수신하는 데이터(패킷)는 IP헤더와 TCP 세그먼트로 구성된다. TCP 세그먼트의 첫 부분은
TCP 헤더로 시작 된다.
발신 포트 번호 (16비트)
수신 포트 번호 (16비트)
일련 번호 (Sequence Number, 16비트)
확인 응답 번호 (Acknowledge Number, 16비트)
헤더 길이
(4비트)
예약 영역
(6비트)
코드 비트
윈도 크기
(16비트)
U
TCP 통신은 다음 절차를 거쳐 시작된다.
클라이언트는 서버에게 SYN 플래그가 1로 지정된 패킷을 전송한다.
(SYN = 1 은 연결 요청을 의미한다.)
SYN 패킷을 수신한 서버는 TCP연결에 대비한 준비를 마친 후 ACK=1,
SYN=1 으로 설정한 패킷을 회신한다.
ACK=1 : 클라이언트가 전송한 SYN=1에 대한 응답
SYN=1 : 서버 또한 클라이언트와 연결을 원하고 있음을 의미
ACK/SYN 패킷을 수신한 클라이언트는 TCP 연결을 준비한 후 ACK=1 패킷을 서버로 회신한다.
위의 세 단계를 모두 거치면 TCP 연결이 확립된 것으로 간주한다. 이처럼 세 단계를 거쳐 TCP 연결이
확립되는 과정을 3-Way Handshake 라고 부른다.
TCP 연결을 종료하려면, 한쪽이 먼저 FIN 플래그를 1로 설정한 패킷을 보낸다. FIN 패킷을 받은
쪽은 상대방의 통신 종료 요청을 확인했다는 뜻으로 ACK=1, FIN=1 패킷을 회신한다.
참고 자료
▶ 열혈강의 TCP/IP 소켓 프로그래밍 (프리렉, 윤성우 저)
▶ 세상에서 가장 쉬운 네트워크 프로그래밍 (정보문화사, Yasutaka Kumei 저)
▶ 기초부터 배우는 TCP/IP 네트워크 실험 프로그래밍 (성안당, 무라야마 유키오 저)