분류 전체보기

네트워크

[네트워크] HTTP

응용계층에는 웹페이지에 접속하기 위한 프로토콜이 존재한다. 바로 HTTP (Hyper Text Transfer Protocol) 이다. HTTP 는 웹에서 하이퍼텍스트 문서를 요청하고 응답하기 위한 프로토콜이다. 웹페이지를 접속하는 구조와 과정을 먼저 알아보자. 웹 브라우저를 통해 사용자가 보고 싶은 특정 URL을 요청하면 웹서버에서는 그에 상응하는 HTML 문서로 응답해준다. 이때 웹상에서 데이터를 전송하는 프로토콜인 HTTP가 이용된다. HTML 은 텍스트, 이미지등의 데이터를 문서 형태로 응답할 수 있는 일종의 웹 문서이다. 해당 HTML 태그를 작성하여 웹 브라우저를 통하여 이미지나 텍스트를 볼 수 있다. 이렇게 웹상에서 데이터를 전송하는데 HTTP라는 프로토콜이 이용된다. HTTP는 웹에서 하이..

카테고리 없음

[네트워크] DNS (Domain Name Service)

DNS 는 Domain Name Service의 약자로 도메인 이름을 기반으로 IP 주소를 알아내는 이름 해석의 과정을 거친다. 보통 구글에 접속할 경우에 google.com 으로 URL을 작성한 뒤 접속을 한다. 하지만 구글의 IP 주소는 따로 존재한다. 이런식으로 IP 주소 대신 특정 호스트를 지칭하는 이름을 사용하여 쉽게 목적지 주소를 기억할 수 있도록 하는 방식이 존재한다. 네트워크에서 도메인 이름을 기반으로 IP 주소를 알아내는 것을 이름해석(name resolution) 이라고 한다. 이러한 역할을 수행하는 것이 DNS 이다. 예를들어 사용자가 웹브라우저로 www.google.com 으로 URL을 입력하면서 구글의 아이피 주소를 물어본다. 그럼 해당 DNS 서버에서 구글의 IP주소를 알려주며 ..

네트워크

[네트워크] DHCP (Dynamic Host Configuration Protocol)

DHCP는 IP주소, 서브넷 마스크, 기본 게이트웨이 등을 자동으로 설정하는 프로토콜이며 1. 임대요청 (DHCP DISCOVER) 2. 임대제공 (DHCP OFFER) 3. 임대선택 (DHCP REQUEST) 4. 임대확인 (DHCP ACK) 등의 절차를 거쳐서 주소를 임대해주는 역할을 수행한다. TCP/IP 의 설정항목은 다음과 같이 IP 주소, 서브넷 마스크, 기본게이트웨이, DNS 서버 IP 주소등이 존재한다. 자동으로 IP 주소받기를 클릭하게 되면 자동으로 IP 주소가 설정된다. 그러나 만약 자동으로 설정하지 않는다면 각 항목을 수동으로 설정하게 된다. 컴퓨터에 아이피를 할당하는 방법은 수동으로 설정하는 방법이 존재하고 자동으로 아이피를 할당하는 방법이 존재한다. 수동으로 아이피를 설정하는 전자..

Redis

[Redis] Redis 설치

Redis 서버를 Linux-ububtu 환경에서 구축해보자. 일단 아래와 같이 네트워크 서버에서 tar 파일을 받아준다. # update package information sudo apt-get update # install Open JDK sudo apt-get install openjdk--jdk # checking java installation information java --version 그리고 각종 패키지 업데이트와 make, gcc 빌드에 필요한 여러 라이브러리를 설치해준다. sudo apt-get install libsystemd-dev sudo apt-get install build-essential tcl tk sudo apt-get install libsss-sudo sudo a..

네트워크

[네트워크] UDP

UDP(User Datagram Protocol) 는 효율성, 비연결형 통신이라는 특성이 있으며 TCP와는 다르게 연결확립 절차를 거치지 않는 프로토콜이다. 연결 확립 절차를 거치는 TCP와 다르게 UDP는 비연결형 통신이며 속도가 빠르다. 이러한 이유로 UDP는 동영상 스트리밍 방식이 적합하다. UDP 헤더가 데이터에 붙게 되면 UDP 데이터그램 혹은 UDP 세그먼트라고 칭한다. UDP 헤더는 아래와 같은 정보를 가진다. 출발지 포트번호, 목적지 포트번호, 길이, 체크섬 등등으로 구성된다. 포트번호를 통해서 특정 애플리케이션에 UDP 세그먼트를 보낸다. TCP 세그먼트의 통신에서는 3-way handshake, 4-way handshake 등의 과정을 거치면서 연결을 확립하고 종료하는 과정을 거쳤지만,..

네트워크

[네트워크] PORT

포트번호는 데이터의 목적지가 어떤 애플리케이션인지 구분하는 기능이다. 네트워크 계층에서는 데이터를 전송하기 위해서 상대방의 IP 주소를 필요로 했다면 전송계층의 포트번호는 어떤 애플리케이션이 사용되고 있는지 구분해주는 역할을 한다. TCP 세그먼트 내부에 TCP 헤더에는 출발지 PORT 와 목적지 PORT 가 존재한다. 이 포트번호가 있기 때문에 어떤 애플리케이션으로 세그먼트를 보낼 것인지 지정하여 보낼 수 있다. 다음으로 포트는 Well-known port(0~1023), Registered port(1024~49151), Dynamic port(49152~65535) 로 나뉜다. Well-known port들은 국제 인터넷주소 관리기구에서 지정한 0~1023 번 까지의 포트이다. 해당 포트들은 주로 ..

네트워크

[네트워크] TCP 혼잡제어

TCP 혼잡제어란 네트워크 내의 데이터를 조절하여 오버플로우 현상을 방지하는 기술이다. 네트워크 내에서 전송을 하면서 네트워크 환경은 항상 잔잔한 상태는 아니다. 어떤 때에는 데이터의 수가 과도하게 증가하기도 하고 데이터가 유실되기도 한다. 이러한 상황을 혼잡(Congestion) 상황이라고 한다. 그리고 TCP는 이 혼잡 상황을 방지하거나 해결하는 혼잡제어 기능을 제공한다. TCP는 혼잡이 발생하기 전과 발생한 후의 제어방식이 각기 다르다. 혼잡이 발생하기 전에는 Slow Start 와 Additive Increase 방식을 사용한다. 혼잡이 발생한 후에는 Multiplicative Decrease 방식으로 혼잡 상황을 해결한다. TCP가 혼잡상황을 인식하는 경우는 다음과 같다. 1) 데이터를 송신하고..

네트워크

[네트워크] TCP 흐름제어 - Sliding window

tcp 통신 도중 송수신지의 처리 능력이 다르기 때문에 데이터가 중간에 유실될 수 있다. 이를 방지하기 위해서 흐름 제어(Flow Control) 기법이 TCP에서 사용된다. 대표적인 흐름제어 기법으로 Stop-and-Wait 기법과 Sliding Window 기법이 있다. Stop-and-Wait 는 모든 패킷에 대하여 확인 응답을 받아야만 다음 패킷을 전송하는 방식이다. 이러한 방식은 앞에 패킷이 정상적으로 보내지지 않으면 계속 대기하고 해당 패킷을 보내는 작업을 기다리게 되므로 다음 패킷전송이 지체되는 단점이 존재하여 비효율적이다. 반면 Sliding window 기법은 각 송수진지에 있는 슬라이딩 윈도우를 활용하는 방식으로, 계속해서 자신의 윈도우 크기(Window Size)를 상대에게 알려주는 ..

네트워크

[네트워크] ARQ

TCP는 전송된 세그먼트가 손실 되거나 순서가 어긋났을 때, 혹은 중복되었을 경우 이에 대한 제어나 처리를 하는 기능이 있다. 그 중 하나의 방법이 TCP 에러제어 이다. TCP 에러제어는 먼저 에러를 검출하는 과정을 거치며, 그 방법으로 CRC와 체크섬을 사용한다. TCP 헤더에는 체크섬이라는 필드가 있다. 이 체크섬 필드는 헤더와 데이터에 대한 에러를 검사하는 기능을 통해 세그먼트가 전송되는 도중 에러가 발생했는지 확인한다. 에러를 검출한 후에는 에러를 정정하는 과정을 거치는데, 에러정정은 ARQ(Automatic Repeat Request) 방식을 사용한다. 재전송 방식에는 Stop and Wait ARQ, Go-Back-N ARQ, Selective Repeat ARQ 방식등이 있다. 1 ) St..

네트워크

[네트워크] 3-way handshake, 4-way handshake

TCP 통신과정에서 데이터를 전송하기 위해서는 먼저 연결상태, 가상의 통신로를 확보해야 한다. 그 가상의 통신로를 확보하기 위해서 3-way-handshake 라는 과정을 거치게 된다 TCP 헤더중 6비트로 구성된 코드비트가 있는데 3way ,4way handshake, 비정상 종료 등등 TCP의 연결 확립 과정과 연결 종료 과정에서 TCP 헤더의 플래그(코드비트) 가 중요한 역할을 한다. 해당 플래그를 확대해서 보면 URG, ACK, PSH, RST, SYN, FIN 이라는 비트들이 각각 1비트로 구성된다 각각 Urgent, Acknowledgement, Push, Reset, Synchronize, Finish 의 약자이다. 해당 비트에 대한 설명은 아래와 같다. URG Urgent Pointer(긴..

ssh9308
'분류 전체보기' 카테고리의 글 목록 (9 Page)