TCP 기본
TCP는 IP와 짝으로 같이다니는 프로토콜이다.
인터넷에서 통신을 수행하는 개체는 호스트와 라우터가 존재한다.
호스트(Host) : end User Application 을 수행하는 주체. 사용하는 하드웨어.
라우터(Router) : 호스트에서 생성된 데이터를 여러 네트워크를 거쳐 전송하는 주체. 호스트간의 데이터 교환을 도와주는 장비.
이런 호스트와 라우터를 사용하는데에 필요한 규약들을 전체적으로 일컬어 통신 프로토콜(Communication Protocol)이라 한다.
TCP/IP 또한 이러한 통신 프로토콜의 일종이다.
TCP(Transmission Control Protocol) : 연결형 프로토콜. 데이터 수신 확인이 돌아올 때 까지 재전송. 1:1통신. 바이트 스트림
데이터전송 원리
데이터를 전송할때는 데이터의 앞에 헤더, 뒤에 트레일러가 붙는다.
헤더와 트레일러는 프로토콜에서 정의한 제어정보들이 들어있다.
각 계층들을 지나면서 구성된 데이터를 패킷(Packet)이라고 부른다. [제어정보 + 데이터] 의 형식을 가진다고 정의한다.
IP 주소, Port번호
통신 주체인 호스트를 판별하기 위한 값들이다.
IP주소는 IPv4, IPv6가 있고 각각 32비트, 128비트 값을 사용한다.
Port 번호는 통신의 종착점을 나타내어 식별하는 식별자이다. 부호 없는 16비트 정수이다.
Port 번호에는 범위가 정해져 있어서 함부로 사용하면 안되는 값들이 정해져있다. 0~1023까지는 미리 약속된 값이므로 그 이후의 값을 사용하는 것이 바람직하다.
클라이언트 서버 모델
기본적으로 네트워크 통신에는 클라이언트 서버 모델이 사용된다.
서비스를 요청하는 쪽이 클라이언트(Client), 서비스를 처리해주는 쪽이 서버(Server)이다.
소켓
소켓이란 네트워크 통신을 위한 단말기 라고 생각하면 된다. 사용자가 통신을 하기위해서 필수적으로 가지고 있어야하는 것이다.
세그먼트 구조
연산 1
- 연결 설정 및 종료
- 리소스 사용률
- 데이터 전송
- 흐름제어
- 오류 검출
- 혼잡 제어 (congestion control)
- 안정적인 전송.
연산 2
- 최대 세그먼트 크기
- 윈도우 크기조절
- 타임스탬프
- 대역 외 데이터(out of band data)
- 선택적 승인 (selective acknowledgement)
- checksum
취약성
- 서비스 거부(denial of service)
- 연결 강탈(연결 하이잭)
- 거부권 or 금지(veto)
'{Programing} > Server' 카테고리의 다른 글
mysql 문제 발생. (0) | 2017.11.06 |
---|---|
리눅스 쉘 스크립트 예제 분석 (0) | 2017.10.23 |
리눅스 쉘 스크립트 (0) | 2017.10.23 |
(리눅스) - make 관련 (0) | 2017.10.09 |
정리계획 (0) | 2017.02.18 |
댓글