목록Network (6)
이것저것
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bohG8V/btq3KQ9jhjn/F7qvBON3fjYxgNXGV3sqk0/img.png)
1. 요청 전 준비 단계, 가정 - www.naver.com URL 을 입력하고 엔터를 눌르면, DNS 서버를 통해 이 도메인의 IP 정보를 가져온다. - URL 내의 포트 번호가 없다면, 기본값으로 HTTP (80), HTTPS (443) 를 사용한다. - 현재 naver는 HTTPS 프로토콜을 사용하고 있다. 그러므로, 실제 데이터를 주고 받기 전에 전송 게층에서 3-way handshake 를 통해 TCP 연결을 수립한 이후, 보안 계층 (SSL/TLS) 에서 정보를 암호화하기 위한 HandShake 과정이 선행되어야 한다. 2. Client PC -> Web Server 로의 데이터 요청 과정 2.1 PC에서의 Capsulation 과정 (1) 응용 계층 - GET /www.naver.com HT..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IQfIO/btq3OOa8BLY/QJgkbxD23N6QD1FBjcAUg0/img.png)
DNS 란 Domain Name System의 약자로 호스트(도메인) 이름을 IP 주소로 변환해주는 역할을 한다. 사용자가 웹 브라우저에서 입력한 URL 을 DNS 서버를 통해 IP 주소를 가져와서 이를 통해 서버와 통신을 하게 된다 IP 정보를 가져오는 과정 ex) 주소창에 www.daum.net 을 쳤다고 가정해본다. 1. PC는 로컬에 저장된 Hosts.txt에서 해당 도메인이 있는지 확인 2. 없으면 DNS Cache Table에 해당 도메인 정보가 있는지 확인 (Cache : 기존에 응답 받은 DNS 정보를 일정 시간 (TTL) 동안 저장하고 동일한 질의시 응답한다.) 3. 없으면 Local DNS 에게 쿼리 - Local DNS 서버는 재귀적으로 여러 서버에게 쿼리하여 IP 정보를 받아온다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LIGap/btq3KeWjS27/4E018drFGmX8FJlB3BG460/img.png)
이전 포스팅에서 TCP 는 3-way handshake 과정을 통해 연결을 수립하고, 4-way handshake를 통해 연결을 해제한다고 썼다. 이번 포스팅에서는 각 과정이 어떻게 이루어지는 자세히 확인해보려고 한다. TCP는 여러 개의 필드로 나누어진 20 bytes, 즉 160 bits의 헤더를 사용하며, 각 필드의 비트를 0 또는 1로 변경하여 전송하고자 하는 세그먼트의 정보를 나타낸다. 하지만 이 20 bytes라는 것은 아무 옵션도 없는 기본적인 헤더일 때의 용량이고, TCP의 여러가지 옵션들을 사용하면 헤더 맨 뒤에 옵션 필드들이 추가로 붙기 때문에 최대 40 bytes가 더해진 60 bytes까지도 사용할 수도 있다. 이 중에서 URG, ACK, PSH, PST, SYN, FIN 이 보이는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/k4Gzo/btqTIqEMhJp/2iDGdox5NFOakiOFbRSuiK/img.png)
3. Network Layer 우리가 주소창에 www.naver.com을 입력하면, 이 영어 주소는 IP주소로 변환되어 사용된다. (DNS) 결론적으로, 상대방의 IP주소를 알고 있어야 메시지(데이터)를 보낼 수 있다. (우리는 모두 www.naver.com의 IP주소를 알고 있는 것이다.) 23.37.87.61 data 를 패킷이라 부른다. A가 라우터 (가)에게 패킷을 전달 패킷을 받은 (가)는 패킷을 열어서 목적지 IP 주소를 확인한다. (가 : 나랑 연결된 컴퓨터 중에서는 23.37.87.61인 컴퓨터가 없네?) (가)는 데이터를 다시 포장하여 자신과 연결되어 있는 유일한 라우터인 (마)에게 전달 패킷을 받은 (마)는 (가)가 그랬던 것과 마찬가지로 패킷을 열어서 목적지 주소를 읽는다. 목적지가 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sEjI1/btqTF2Yoy4v/or5uOSp6D77h8XjPwq7k8k/img.png)
1. Physical Layer Q : 두 대의 컴퓨터가 통신하려면? 모든 파일과 프로그램은 0과 1의 나열 결국 0과 1만 주고받을 수 있으면 통신 가능하다. 010101 을 보내고 싶으면 아날로그 신호로 수신자 컴퓨터에게 보낸다. 수신자 컴퓨터는 그걸 해석해 010101을 이해한다. 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려보냄 (encoding) 아날로그 신호가 들어오면 0과 1의 나열로 해석(decoding) 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 module (모듈이란 프로그래밍에서의 함수와 비슷) 데이터를 보내는 컴퓨터 (1계층 encoder) → 전선 → 데이터를 받는 컴퓨터 (1계층 decoder) 1계층 모듈은 하드웨어적으로 구현되어 있..
TCP UDP 모두 OSI 7계층 중 전송계층에서 동작하는 프로토콜입니다. 두 프로토콜 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로콜을 기반으로 구현되어이 있습니다. 1. TCP 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜 연결형 서비스로 가상 회선 방식을 제공 3-way-handshaking 과정을 통해 연결을 설정하고, 4-way-handshaking을 통해 해제한다. 흐름 제어 및 혼잡 제어 높은 신뢰성 UDP 보다 속도가 느리다 ex__) 파일 전송 2. UDP 데이터를 데이터그램 단위로 처리하는 프로토콜 : 독립적인 관계를 지니는 패킷 비연결형 프로토콜이기 때문에 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른..