본문 바로가기

tcp5

네트워크 12강 - TCP part.3 TCP를 소개하는 마지막 글이다. TCP가 커넥션을 맺는 방법과 Congestion Control을 자세히 알아보자. TCP는 신뢰성 있는 전송을 제공하는 것이 기본적인 목적인 만큼 Control에 관해선 할 말이 많다. TCP 연결 관리 TCP은 Connection Oriented Protocol이다. 데이터 전송을 보장하는 파라미터들을 각자 설정하기 위해 연결을 맺는다. 2 Way Handshaking의 문제점 클라이언트는 서버가 alive 상태인 것을 확인할 수 있다. 하지만 서버는 클라이언트의 SYN 메세지가 언제 전송된 것인지, 혹은 이미 종료된 연결의 SYN 메시지인 지 알 수 없다. 서버 측도 클라이언트가 alive 상태인 것을 확인하기 위해 3 way Handshaking을 한다. 3 Wa.. 2020. 8. 10.
네트워크 11강 - TCP part.2 TCP에 대해 이어서 알아보자. TCP Sender Events TCP 세그먼트를 보내는 측에선 무슨 일을 하는지 알아보자. 애플리케이션 계층에서 데이터가 도착했다. 시퀀스 넘버와 체크섬을 달아서 세그먼트를 만든다. 타이머가 동작중이라면? 타이머는 가장 오래된 전송 중인(In-Flight) 세그먼트(가장 낮은 시퀀스 번호)에 맞춰져 있다. 세그먼트를 보낸지 너무 오래됐으면 도중에 유실된 것으로 판단한다. 이 때 사용하는 시계가 타이머이다. 타이머가 동작중이지 않다면? 타이머를 켜고 해당 세그먼트에 맞춘다. Time Out 발생! Time Out된 세그먼트를 다시 전송한다. Ack를 받지 못한 가장 작은 시퀀스의 세그먼트에 타이머를 맞춘다. Ack를 받았다. 받은 Ack에 해당하는 세그먼트를 In-Flig.. 2020. 8. 10.
네트워크 10강 - TCP part.1 앞으로 세 강에 걸쳐서 TCP에 대해 알아보자. 강의 시간은 총 3 시간 남짓이지만 이 포스팅은 중요 내용을 기억하기 위한 이정표를 제공하기 위한 글이므로 짧게 요약해서 쓰겠다. 하루 중 시간을 조금씩만 투자하면 금방 완강하니 자투리 시간을 내서 꾸준히 들어보기를 권한다. TCP는 Byte Stream TCP는 메세지를 임시 저장소인 버퍼에 담아서 Flow Control, Congestion Control에 의해 제어되는 속도로 버퍼에 있는 메세지를 전송한다. 버퍼 담는다는 것에 주목해보자. TCP는 잠시 버퍼에 담았다가 전송한다. 버퍼로 인해 메모리에 부담이 커질 수 있다. 잠시 담았다가 전송하므로 Throughput 성능이 떨어진다. Flow Control이란? 수신측에도 TCP 버퍼가 있다. 수신 .. 2020. 8. 10.
네트워크 9강 - Transport Layer 개론 지금까지 Application Layer에 대해 알아봤다. http와 rest api의 심화 내용은 다른 과목에서 더 깊게 공부하기로 하자. 이번 강의의 목적은 네트워크 전반의 이해를 통해 웹 응용 기술들을 시스템적 관점에서 바라볼 수 있게함에 있다. Transport Layer, 전송계층 지금까지 공부했던 Application Layer는 전송을 담당하는 계층이 아니다. Http는 사용자가 만들어낸 데이터를 메세지로 만드는 '규칙'이었고 DNS는 도메인-IP간 매핑을 해주는 '서비스'였다. 애플리케이션 계층의 웹브라우저든 이메일 클라이언트든 모두 "프로세스"이다. TCP는 프로세스 간 "Logical Communication"을 담당한다. Logical Communication, 논리적 통신이란 실제 .. 2020. 8. 10.
네트워크 4강 - Application Layer의 소개 우리는 일상적으로 웹서핑을 하거나 보이스톡으로 대화를 하면서 게임을 한다. 이전의 포스팅에서 얘기했듯이 평소 사용하는 프로그램 대부분은 네트워크를 이용하는 애플리케이션이다. 그러므로 먼저 네트워크 애플리케이션 계층을 살펴보도록 하자. 클라이언트 - 서버 아키텍쳐 클라이언트란? 클라이언트 프로세스는 서버로부터 서비스를 받는 프로세스이다. 예를들어 웹클라이언트( == 웹브라우저)는 웹서버에게 웹 서비스를 요청(Request)하고 웹서버로부터 응답(Response)을 받는다 클라이언트는 서비스를 받는 입장이므로 당연히 클라이언트끼리 직접적으로 통신하지않는다. 항상 켜져있을 필요도 없고 서버는 특정 클라이언트가 고유하게 누군지 식별할 필요 없으므로 고정된 IP가 필요없다. 서버란? 서버 프로세스는 클라이언트에게.. 2020. 8. 5.