
TCP/IP 4계층

전송 계층 - TCP
- 신뢰성 보장 (송신부와 수신부의 연결확인하는 연결형 서비스)
- 순서 보장 (가상회선 방식으로 전송)
- 가상회선 방식: 패킷은 모두 같은 길로만 전송한다.
- 패킷 전송 순서 보장
- 1:1 보장
TCP 핸드쉐이킹
시작 3-way hand shaking / 종료 4-way hand shaking

TCP Keep Alive
3-way hand shaking이 일어난 이후에 일정 시간 연결 유지 후에 연장 여부를 택하며 연결을 유지하는 방식
TCP 제어 방식
흐름 / 혼잡 / 오류
1. 흐름제어
- 정지-대기
- 송신후에 송신확인이 되질 않으면 다음 패킷을 보내지 않고 대기
- 슬라이딩 윈도우
- [정지-대기]의 1개 보내고 ACK를 받을 때까지 대기해야한다는 단점을 보안하고자 슬라이딩 윈도우로 전송
2. 혼잡제어
- AIMD(Additive Increase Multiplicative Decrease)
- 데이터를 전달할 때 합 증가 방식, 데이터 손실시 1/2 크기로 전송한다.
- 느린 시작
- 혼잡이 발생하면 왼두오 크기를 1로 줄이는 방식
- 혼잡 회피
- 윈도우 크기에 대한 임계점을 정하는 방식 (혼잡이 발생한 윈도우 크기의 1/2)
- 빠른 회복
- 혼잡이 발생하면 발생하면 윈도우 크기를 줄인 후에 선형적으로 윈도우 크기 증가
- 빠른 재전송
- ACK가 3번 유실되면 해당 시점의 윈도우 크기로 1/2 로 줄인다.
전송 계층 - UDP
- 신뢰성 X (수신 여부 확인하지 않음)
- 순서 보장 X (데이터그램 패킷 전송 방식)
- 데이터그램 패킷 전송 방식: 패킷별로 최적의 루트를 통해 전송한다. 동일한 길을 택하지 X
- 1:N 서비스
체크섬 오류 검출
- 데이터의 모두를 더한다.
- 캐리(오버플로) 발생한 부분은 다시 첫 자리에 더한다.
- 1의 보수를 취한다.
- 모든 오류를 검출 할 수 없다.
- 오류를 수정할 수 없다.
응용 계층 - HTTP
HTTP 특징
1. 비연결성
- 비연결성 단점을 보안하기 위해서
HTTP Keep Alive
방식이 있다. - HTTP Keep Alive: 일정시간 연결을 유지해 주는 방식
→ TCP Keep Alive와 살짝 다름을 주의
2. 무상태성
- 무상태성 보안을 위해
쿠키
세션
이 있다. - 쿠키
- Key-Value 방식으로 client에 key, value 모두 갖고 있다.
- 세션
- Key-Value 방식으로 client에 key, Sever에 value를 갖고 있다.
응용 계층 - HTTPS
HTTP에 SSL/TLS 보안 계층을 더한 프로토콜
용어 정리
대칭키
- 암호화와 복호화 과정에서 동일한 Key를 사용한다.
비대칭키
- 암호화와 복호화 과정에서 서로 다른 Key를 사용한다.
- 대칭키에 비해서 느리다.
HTTPS 암호화 과정
- 대칭키와 비대칭키 모두 사용된다.
- Client가 Server에 접속을 요청하면 서버는 Secret Key와 Public Key를 만든다.

- 서버는 만들어진 Public Key를 Client에게 전송한다.

- Client는 Session Key를 만들고 Public Key로 암호화한다.

- 암호화된 Session Key를 서버에 넘기고 Server는 SecretKey를 통해 해독한다.

- Client Server 모두 Session Key를 갖게 되었다.
- 공통의 Session Key를 통해 대칭키 통신을 한다.
Share article