본문 바로가기

컴퓨터 네트워크22

네트워크 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.
네트워크 3강 - Metric, Network, Protocol 이번 글도 본격적인 네트워크 얘기를 하기 전 네트워크 전반적으로 사용되는 용어를 설명하는 글이다. Metric Metric : 무엇을 측정할 것인가? Metric이란? 지표라고 생각하자. 운영체제든 자료구조든 어떤 과목을 듣던지 이런 방식에는 이런 장단점이 있고 저렇게 하면 이런 장단점이 있다는 얘기는 빠지지 않고 나온다. 좀 더 크게 생각한다면 문제를 해결하는 여러 방법들은 각각 장단점이 있다. 예를 들어 알고리즘 속도를 빠르게 한다면 메모리를 많이 사용하고 메모리를 적게 사용한다면 추가적인 연산이 필요해서 속도가 느려진다. 이때 우리는 두가지에 관심을 갖는다. 속도와 메모리 사용. 이게 알고리즘에서의 Metric, 지표이다. 그러면 네트워크에는 무슨 지표가 있는지 알아보자. Metric 1. Dela.. 2020. 8. 4.