강의노트16 네트워크 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. 네트워크 7강, 8강 - Electronic Mail과 DNS, P2P 아키텍쳐 인터넷 상에서 URL로 연결된 웹문서로 정보를 교류하는 서비스가 웹이었고, 웹을 위한 프로토콜이 http였다. 이번에는 이메일 서비스와 이를 위한 프로토콜인 SMTP, POP, IMAP을 알아보자. 또 IP와 도메인 이름을 연결시켜주는 서비스인 DNS에 대해서도 알아보자. 그리고 8강 내용 P2P 아키텍쳐 내용까지 간단히 알아보자. Electronic Mail 먼저 Non-Electronic Mail을 생각해보자. 집의 우편함과 우체국을 생각해보자. 각 집마다 편지를 받는 공간인 우편함이 있다. 발송될 편지는 우체국에 모아놨다가 한꺼번에 차에 실어 보낸다. Electronim Mail도 이와 비슷하지 않을까? 메일 서버의 구조 Mail box : 사용자마다 따로 가지고 있는 수신메일을 담는 자료구조다. .. 2020. 8. 7. 네트워크 6강 - 쿠키와 웹캐시 쿠키 : Cookie Http는 상태정보를 저장할 수 없어! 카톡 메세지 하나 보낼 때마다 카톡 로그인을 다시 해야한다고 생각해보자. 즉 자신의 로그인 상태가 저장이 안된다면(Stateless) 많이 곤란하다. Http 프로토콜 자체는 Stateless 한 프로토콜이다! 즉 State 정보 저장은 유저가 해야한다. http를 stateful하게 설계한다면 물리적으로 항상 같은 서버와 통신해야 하기 때문에 서버 측에서 확장하기 어렵다. 쿠키 : Cookie 쿠키는 Unique한 ID이다! Unique한 ID로 상태정보를 저장할 수 있다. 작동원리 클라이언트가 서버에게 요청을 보낸다. 서버는 클라이언트에게 Unique한 ID를 http헤더에 실어서 보내고 누구에게 어떤 ID를 할당했는지 서버 데이터베이스에 .. 2020. 8. 7. 네트워크 5강 - RTT, Http의 종류와 메세지 이번 포스팅에서는 앞으로 자주 나올 Round Trip Time (RTT)와 Http 연결 유지 여부에 따른 Persistent Http, Non-Persistent Http 그리고 Http 메세지에 대해서 알아보자. RTT : Round Trip Time RTT란? 아주 작은 패킷이 클라이언트와 서버 사이를 왕복하는데 걸리는 시간이다. '아주 작은 패킷'은 Transmission Delay를 무시한다는 뜻이다. 단위 패킷당 네트워크 왕복시간 정도로 해석하자. 앞으로 RTT는 기준이 되는 시간처럼 사용한다. Non-Persistent Http 앞에서 Http는 File Tansfer와 비슷하므로 Data Integrity가 중요하다고 했다. 따라서 Http는 UDP 가 아닌 신뢰성있는 TCP를 사용한다... 2020. 8. 6. 네트워크 4강 - Application Layer의 소개 우리는 일상적으로 웹서핑을 하거나 보이스톡으로 대화를 하면서 게임을 한다. 이전의 포스팅에서 얘기했듯이 평소 사용하는 프로그램 대부분은 네트워크를 이용하는 애플리케이션이다. 그러므로 먼저 네트워크 애플리케이션 계층을 살펴보도록 하자. 클라이언트 - 서버 아키텍쳐 클라이언트란? 클라이언트 프로세스는 서버로부터 서비스를 받는 프로세스이다. 예를들어 웹클라이언트( == 웹브라우저)는 웹서버에게 웹 서비스를 요청(Request)하고 웹서버로부터 응답(Response)을 받는다 클라이언트는 서비스를 받는 입장이므로 당연히 클라이언트끼리 직접적으로 통신하지않는다. 항상 켜져있을 필요도 없고 서버는 특정 클라이언트가 고유하게 누군지 식별할 필요 없으므로 고정된 IP가 필요없다. 서버란? 서버 프로세스는 클라이언트에게.. 2020. 8. 5. 이전 1 2 3 다음