\-인터넷은 무엇인가?\-프로토콜은 무엇인가?인터넷을 덩어리로 생각하면, 가장자리에 서버들이 존재하는데 이를 "호스트" 또는 "end system"이라 한다. "호스트"의 뜻은 사용자 애플리케이션을 "사용(호스팅)"하고 있다는 뜻이다라우터 : 네트워크의 중앙에서 사용자
1.2 네트워크 엣지호스트의 역할호스트는 네트워크 애플리케이션 프로그램을 "호스팅"하기 때문에 호스트이다. 호스트 안에서 전송되는 네트워크 애플리케이션 프로그램은 특정 메세지를 다른 컴퓨터의 상대방에게 주고받는다는 특징이 있다. 따라서 사용자의 "애플리케이션 메세지"가
1.4 Delay, loss, throughput in networks어떤 패킷이 한 폭을 지나갈때 네 가지 종류의 딜레이를 겪는다. 먼저 패킷이 노드에 도착할 때 오류 없이 잘 도착했는지 확인하는 프로세스를 거친다. 에러를 체킹하고 다음 링크를 결정한다. 이를 nod
Chapter 2 : Application layer네트워크 애플리케이션은 cliend-server 와 peer-to-peer(p2p) 의 두 가지 구조를 갖는다.커뮤니케이션을 하는 실질적은 주체는 프로그램이다. 그 프로그램이 있는 호스트가 client-server일
위 사진은 Non-persistent HTTP의 동작방법이다. http는 tcp위에서 동작하므로 유저가 url을 타이핑하면 http client인 브라우저는 tcp 커넥션 요청을 보낸다. 서버가 그 요청을 받아들이면 커넥션이 형성되고 클라이언트가 http request
User-server state: cookies : 많은 웹사이트는 쿠키를 사용한다. 이를 사용하는 목적은 서버와 사이트에서 클라이언트들의 트랜잭션에 대한 히스토리를 유지하도록 하기 위해서다. 장점은 쿠키를 사용해 이전 기록을 보관하므로 프로토콜이 간단해져 오버헤드가
Mail access protocols은 receiver의 메일서버에서 메일을 받는 유저 에이전트에 연결할 때 사용되는 프로토콜이다. 이에는 POP,IMAP,HTTP(리시버의 서버가 웹 메일 서버일 경우) 등이 있다. POP이 먼저 만들어졌고,IMAP은 pop의 단점을
DNS는 distributed 데이터베이스를 가지고 있다. 그 데이터베이스에 저장하는 것을 리소스 레코드, RR이라 부른다. RR은 위 사진처럼 name(매핑정보) value(매핑정보) type(네임/밸류 결정하는 것) ttl(유효기간)의 네 가지를 갖는다. type은
애플리케이션 프로토콜은 애플리케이션 프로그램을 지원한다. 보편적 네트워크 애플리케이션 프로그램을 만들때는 소켓을 사용한다. 소켓은 마치 프로그래머가 작성하는 프로그램과 운영체제가 제어하는 transport 사이의 인터페이스다. 예시로 클라이언트가 키보드에서 소문자로 타
Connectionless 일 경우 demux는 목적지쪽의 포트번호만 보고 일어난다. 그런데, Connection-oriented일 경우 demux는 어떨까. 이 경우 서버 호스트에 여러 앱이 있고 도어 소켓을 열고 있다. 이때 어떤 클라이언트가 연결을 할 때마다 그
위 사진과 같이 RTT가 추정되는데 이전 RTT는 시간이 지날수록 가중치가 줄어든다. 알파값은 보통 0.125로 추정한다. sample rtt는 굉장히 가변적이므로 estimated rtt에 더 가중치를 둔다.네트워크의 동적 상태를 반영해 safety margin을
3way 핸드셰이킹에서 클라이언트는 syn(싱크) 메세지를 보내고 서버는 synack을 응답한다. 이후 클라이언트에서 ack이 돌아오면 핸드셰이킹이 맺어지는 원리다. 싱크 비트는 1로 설정하고 x의 시퀀스 넘버를 적어보낸다. 서버가 synack을 만드는데 여기에는 클라
네트워크 계층의 목적은 트랜트포트 계층의 세그먼트를 센딩 호스트부터 리시빙 호스트로 전달하는 host to host 딜리버리다. 트랜스포트 계층에서 세그먼트가 내려오면 네트워크 계층은 세그먼트에 헤더를 붙이는 encapsulates를 수행해 이를 프로토콜 데이터 유닛인
라우터의 주가지 주요 기능은 라우팅과 포워딩이다. 라우팅은 라우팅 프로토콜을 따라 경로를 계산하는 데 필요한 정보를 서로 라우터들끼리 주고받게 된다. 그렇게 수집한 정보를 이용해 라우트를 계산하는 알고리즘을 실행하고 각 목적지의 경로를 지정한다.실제로 패킷이 들어오면
어떻게 호스트나 서브넷이 ip 주소를 할당받을 수 있을까? 첫 번째는 시스템 관리자에 의해 ip주소를 하드코드(할당) 하는 것이다. 윈도우 시스템의 제어판에 들어가 ip를 타이핑하는 것과 같다. 이런 경우는 시스템이 같은 장소에 있는한 ip주소가 잘 바뀌지 않는다.다른
네트워크 계층의 프로토콜은 ip, icmp, 라우팅 프로토콜 3가지가 있다.icmp는 호스트와 라우터 간 에러 리포팅 등 서로 살아있는지 확인하기 위한 네트워크 계층 제어 정보를 교환하는 프로토콜이다.icmp는 ip보다 상위 계층인데 icmp 메세지를 ip 데이터그램으
다익스트라 알고리즘의 단계별 수행예시다. 숫자 옆의 알파벳은 최단경로로 해당 노드에 도달하기 이전 노드를 의미한다. 이전 노드를 추적해가다 보면 최단 경로를 나타내는 트리가 그려진다. ![](https://images.velog.io/images/rg970604/
AS1은 AS3와 AS2를 통해 위치할 수 있는 경로를 알아야 하고, 이를 AS1 내부 전체에 소문을 내야 한다. 이것이 intra as 라우팅의 역할이다. ![](https://images.velog.io/images/rg970604/post/ed3aaddd-a
BGP와 OSPF는 어떻게 협력하여 다른 AS의 목적지를 위한 포워딩 테이블을 세팅할 수 있을까?3개의 as가 연결된 예가 있다. as는 bgp 메세지로 루트 정보를 교환한다. 이 정보는 1) 목적지 서브넷의 프리픽스 2) 목적지 서브넷으로 가는 경로 정보인 attri
지금까지 32비트의 ip주소를 가지고 표현해왔다. 네트워크 계층에서는 이를 가지고 목적지를 표시하여 포워딩 테이블을 작성한다.실제로 노드에서 노드로 연결되는 링크를 건널 때는 어떤 프레임에 동봉해서 메세지를 보내야 한다. ip계층에서의 소스와 목적지는 본래 소스 호스트
wireless 와 mobile 네트워크는 비슷하지만 차이가 있다. wireless 는 링크가 무선인 네트워크고 moblity는 사용자가 움직이는 것을 의미한다. ![](https://images.velog.io/images/rg970604/post/8ee29c7
(출처 : 네이버 지식백과)사전 정의에 따르면 프록시란 “타인을 위하여 행동하거나 발언할 권한을 부여받은 사람이다”, 여기서 “타인을 위하여 행동”, 즉 “대리한다, 대신한다”라는 키워드에 집중하면 될 것이다.(출처 : 네이버 지식백과)일단 먼저 컴퓨터 세계에서 “프록
로드 밸런싱을 이해하기 위해서는 스케일 업과 스케일 아웃에 대해서 먼저 인지해야 한다.만약 서비스에 사용자가 몰려들어 현재 내 서버에 부하가 크게 왔다고 생각해 보자. 그렇다면 먼저 들 수 있는 생각은 “서버의 하드웨어 성능을 높이면 되지 않을까?” 와 같은 것이다.따
참고 : https://www.youtube.com/watch?v=UxNz_08oS4Ehttp 캐시는 특정 응답의 요청을 어딘가에 저장해놨다가. 동일한 요청이 올 때 재사용 하는 것을 말한다.응답을 재사용하면 서버까지 질의를 하는 과정을 거치지 않으니 클라이언