[OSI 7계층] ∙OSI 7계층 ➀물리(Physical): 데이터를 전기적 신호 주고받는 계층 ➁데이터링크(Data Link): MAC 주소, 스위치, 물리 정보 송수신 ➂네트워크(Network): IP 주소, 라우터, 패킷을 송수신 ➃전송(Transport): TCP(신뢰성, 연결지향적), UDP(비신뢰성, 실시간) ➄세션(Session): 프로그램 간의 통신 ➅표현(Presentation): 애플리케이션이 다루는 정보를 통신에 맞는 형태 전환 ➆응용(Application): 일반적인 응용 서비스 수행을 담당하는 계층 [TCP 연결/해제] ∙TCP 3 way handshake(TCP 연결) ➀클라이언트가 서버에게 SYN 패킷을 보낸다(sequence: x) ➁서버가 SYN을 받았다는 신호인 ACK와 SYN 패킷을 보낸다 (ACK: x+1, sequency = y) ➂클라이언트가 서버의 ACK, SYN 패킷을 받고, ACK 패킷을 서버로 보낸다 (ACK: y+1) ∙TCP 4 way handshake(TCP 해제) ➀클라이언트는 서버에게 연결을 종료한다는 FIN 플래그를 보낸다 ➁서버는 FIN을 받고, 확인했다는 ACK를 클라이언트에게 보낸다 모든 데이터를 보내기 위해 TIME OUT 상태가 된다 ➂서버는 데이터를 모두 보내고 연결이 종료되었다는 FIN 플래그를 보낸다 ➃클라이언트는 FIN을 받고, 확인했다는 ACK를 서버에게 보낸다 아직 받지 못한 데이터가 있을 수 있으므로 TIME_WAIT를 통해 기다린다. 서버는 ACK를 받은 이후 소켓을 닫는다(Closed) 클라이언트도 TIME_WAIT 시간이 끝나면 소켓을 닫는다(Closed) |
[TCP 흐름제어, 혼잡제어] ∙TCP 흐름제어(수신측 저장 용량 초과 예방 송신 전송량 조절 기법) ➀Stop and Wait: 매번 전송 패킷 응답 받고 다음 패킷 전송 ➁Sliding Window: -수신측 설정 윈도우 크기만큼 송신측에서 확인 없이 전송, -전달이 확인된 다음 패킷 전송 ∙TCP 혼잡제어(네트워크 혼잡 회피 송신 전송량 조절 기법) ➀느린 시작: -패킷 하나 보내고 문제없이 도착하면 송신 window size를 2배씩 증가하며 전송 -수신 측의 window size의 절반 이상부터는 1개씩 증가 -혼잡 현상이 발생하면 송신 window size를 1로 변경 ➁합 증가/곱 감소: -패킷을 하나 보내고 송신 window size를 1씩 증가하며 전송 -패킷 전송에 실패하면 송신 window size를 절반으로 변경 ➂빠른 재전송: -타임아웃 전 ACK를 중복 3번 받게 되면 해당 세그먼트 즉시 전송 -혼잡을 감지하고 송신 window size를 줄인다(느린시작/합증가.곱감소) ➃빠른 회복: -혼잡이 감지되면 window size를 반으로 줄이고 선형적으로 증가 -Time out이 발생하면 window size를 1로 줄이고 느린 시작을 한다 [UDP, DNS] ∙UDP(User Datagram Protocal) -비신뢰성, 비연결성, 적은 패킷 용량, 빠른 송신 속도 ∙DNS(Domain Name Servie) -문자로 적힌 도메인을 IP 주소로 바꾸는 서비스 [HTTP, HTTPS] ∙HTTP(HyperText Transfer Protocol) -인터넷에서 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신 규약 ∙HTTPS(HyperText Transfer Protocol Secure) -공개키 암호화 방식 |