728x90
반응형

컴퓨터(Computer Science)/네트워크, Network 43

소켓 프로그래밍, Socket Programming

소켓.. 전구 소켓이 아니라 다른 소켓이다. 의미는 같지만 가리키는 것이 다르다. socket은 콘센트와 같은 것을 말하는데 연결되면 전기가 공급되듯이 네트워크에서는 수많은 bit가 흘러들어온다. 알아보자 소켓은 크게 2종류가 있다. 종류를 정하는 것은 Protocol인데 여기선 L4이다. TCP와 UDP이다. TCP는 TCP/IP 라고도 부르는데 하나로 묶여서 쓰이기 때문이다. 즉, 소켓을 구성하는데는 수많은 규약들이 정해져있다. OS의 이해도 필요하고 Protocol의 이해도 필요하고 데이터를 주고 받는 방식, 바이트를 읽는 방식 등 모든 규약을 정해야 정상적인 통신이 가능해진다. 또한 네트워크인만큼 예외상황도 많이 발생한다. 정말 힘들다. 우선 네트워크는 서버와 클라이언트로 나누어진다. 소켓도 클라..

네트워크 바이트 오더 [네트워크]

뭐 순서와 관련되었다고 생각하면 쉽다. 알아보자 2바이트 이상의 데이터를 송수신할 때는 바이트 오더에 주의해야 한다. 바이트 오더란 2 바이트 이상의 데이터를 메모리에 배치하는 방식을 말하는데 배치 방식에는 빅 엔디안, Big Endian, 리틀 엔디안, Little Endian이 있다. 기본적으로 우리는 빅 엔디안에 익숙해져있다. 우리가 12345를 만 이천 삼백 사십 오라고 읽는 것과 같은 이치다. 이러한 기준 엔디안은 프로세서에 따라 달라진다. 같은 엔디안 끼리 통신할 때는 문제가 당연히 없지만 다를 때 문제가 생긴다. 즉, 송신했을 때 어떻게 수신하느냐에 따라 데이터가 달라질 수도 있다는 것이다. 이처럼 다른 프로세서 간의 데이터를 송수신할 때는 바이트오더를 약속해야 한다. C#에서는 IPAddr..

쿠키, Cookie 와 세션, Session

웹 브라우저와 웹 서버 사이에서 암묵적인 정보 교환을 하기 위한 장치다. Cookie는 웹 서버의 지시에 따라 웹 브라우저가 클라이언트 컴퓨터 안에 저장한다. 브라우저에도 저장된다. **작은 텍스트 파일이다. 웹사이트는 쿠키를 통해 사용자의 장치를 인식 식별하여 웹사이트에 대해 접속자에 대해 개인화하는 용도에 쓰인다. 예를 들어 사용자에 따라 색을 바꾸거나 메뉴 구성을 바꾸는 것과 같은 일을 한다. **즉, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장하기 때문에 그런 일이 가능하다. 그 내용은 도메인명이나 Cookie의 유효기한과 같은 기본 정보 외에 해당 처리의 독자적인 값으로 구성된다. **물론 해당 페이지에서 나가면 삭제되는 쿠키가 있는 반면 수동으로 삭제할 때까지 남아있는 쿠키도 있다..

SSL, Secure Sockets Layer 란 무엇일까? (+HTTPS)

이것의 목적은 인터넷에서 보안을 위해서다. 파일과 같은 것들을 안전하게 주고 받기 위해 사용하는 것이다. 인터넷 통신은 특히 위험하다. 통신 상대를 속이는, 중간에 데이터를 가로채서 변조하거나 도청하는 등 수많은 위험에 노출되어있다. 인터넷 상에서 결제, 수납, 파일 다운로드 등 중요한 작업을 할 때가 많은데 SSL을 통하여 네트워크에서 서로 인증함으로써 위에 언급한 위험을 피하는 것이다. 일반적으로 증명서를 사용해서 정당성을 확보하고 서로 간의 암호화를 확인하여 암호화된 통신을 시작하는 것이다. 그렇다면 HTTPS 는 무엇일까? HTTP + SSL이다. HyperText Transfer Protocol over SSL의 약자다. WWW 서비스 데이터 통신에는 이것을 사용한다. 웹 서버와 웹 브라우저 간..

TCP vs UDP 비교

TCP, Transmission Control Protocol UDP, User Datagram Protocol 정확히 무엇인지 알아보자. 또한 각각의 특징들을 알아보자 또한 위의 것들은 통신에서의 프로토콜이다. 여기서 통신이란 호스트 컴퓨터에 있는 프로세스 간의 통신이라고 하는 것이 더 정확하다. **IP는 호스트와 호스트 간의 통신에만 책임이 있는 것이다. TCP, UDP와는 다른 프로토콜임을 인지하자 -> 포트번호에 대해서 알면 더 쉽다. 우선 TCP부터 알아보자 OSI 참조 모델에서 전송 계층에서는 신뢰성이 높은 통신을 보증해야 한다. **신뢰성이란 데이터 손실 없이 정확하게 전달하는 것을 의미한다. 위의 그림을 설명하자면 3단계로 나눌 수 있다. 1. 클라이언트는 초기 순서 번호를 선택한 SYN..

VPN, Virtual Private Network, 우회하는 원리

우리는 VPN 우회로 해외 사이트를 접속하고는 한다. 막힌 사이트 주소를 정부에서 먼저 검열하여, 우리의 컴퓨터가 보기 전에 정보를 차단하기 때문이다. 이런 뜻이 무엇일까?? VPN은 인터넷에 가상의 전용선 공간을 만들어 놓아서 거점 간을 안전하게 연결하기 위한 기술 또는 이를 사용하여 구축한 네트워크를 가리킨다. **보통 전용선이라 하면 비싼 가격을 생각하지만 VPN의 경우는 기존의 인터넷 회선을 이용하기 때문에 저가로 제공이 가능하다. 가상의 전용선 공간은 거점 간에 암호화된 통신 데이터를 주고받음으로써 구현된다. 여기에서 사설 전용선 공간이란 사설 네트워크나 인트라넷과는 다른 것이다. 그렇다면 어떤 방식으로하느냐??? 우선 일반적으로 어떻게 통신을 하는지부터 알아보자 일반적으로는 인터넷 사업자(IS..

클라이언트와 서버, Client & Server

아래 그림을 보면 어떤 생각이 나는가? 이것이 클라이언트와 서버다. 게임에서는 클라이언트 프로그램이 작동하지 않는다는 말로 게임이 꺼지기도 하는데.. 이 또한 서버와의 접속이 끊어져서 그렇다. 또한 Server는 진짜 Serve, 대접하다의 er이 붙어서 Server가 된 말이다. 즉, 대접하는 사람, 서비스를 제공하는 사람이라고 보면 된다. 클라이언트, Client 또한 손님, 요구하는 사람이 된다. 일반적으로 옛날의 컴퓨터에서는 P2P, Peer to Peer 관계로 이루어져 있어서 네트워크의 클라이언트들이 파일이나 프린터와 같은 자원을 공유하는 형태의 네트워크가 많았는데 여기서 나의 파일을 다른 컴퓨터가 쓰고 싶을 때는 내가 Server가 되고 다른 컴퓨터가 Client가 되는 것이었다. 즉, 일방..

Subnet Mask, 서브넷 마스크란?

우선 이름을 보니 우선 낯익다. 네트워크 설정을 열어보니 이런 것이 있다. 이것이 무엇일까?? Sub는 하위의 란 뜻이고 Net은 그물이라는 뜻으로 네트워크 망을 말한다. Mask는 실제로 가면과 같이 무엇인가를 숨기기 위하여 가리는 것을 의미한다. 즉, 합해서보면 네트워크를 하위 단위로 나누기 위한 무엇인가를 말하는 것 같다. 정말로 그렇다. IP 주소는 우리가 사용하지만 바로 직접 사용되지는 않는다. 서브넷 마스키을 거쳐서 변환되어 사용된다. 즉, 주어진 IP 주소를 네트워크 환경에 따라서 나누어주기 위해서 사용하는 것이다. 그렇게 나누는 이유는 1. 브로드캐스트 영역을 나누어 로드 줄이기 위함 2. IP 주소를 효율적으로 사용하기 위함 서브넷 마스크가 IP를 변환하는 과정은 논리곱 AND를 이용한다..

유니캐스트, 브로드캐스트, 멀티캐스트 (Uni, Broad, Multi)

접두사만 바뀌고 다 cast가 붙는다. cast는 던지다라는 뜻으로 uni- 하나 broad - 사방 multi - 다중 의 뜻과 합쳐져 쓰인다. 그렇다면 네트워크에서 던지는 것은 뭘 던진다는 것일까? 뻔하다. 데이터다. 위 3가지 용어는 통신 방식의 차이이다. 유니캐스트부터 알아보자 일단 통신이 되려면 전송되는 프레임,Frame 에 출발지 주소, 목적지 주소, MAC address가 쓰여있어야 한다. 즉, 주소를 쓸 때 하나의 PC에 대해서만 쓰여야 한다는 말이다. 편지와 같다. 보내는 사람과 받는 사람만 있는 것과 마찬가지다. 이게 바로 Unicast이다. 이러한 방식으로 임의의 PC가 유니캐스트 프레임을 보내면 로컬 네트워크 상의 모든 PC들은 일단 이 프레임을 받아들여서 자신의 맥 어드레스와 비교..

MAC address vs IP address, 맥 주소 IP 주소 비교하기

우리는 네트워크를 이룰 때 착각하는 것이 있다. IP만 있으면 된다고 생각한다. 물론 개발자가 아니라면 IP가 유일한 주소고 IP를 알아야만 통신이 가능하다고 까지만 알아도 된다. 하지만 우리는 개발자로서 알아야 할 의무가 있다. **MAC은 우선 Media Access Control의 약자다. 우리는 네트워크 레이어에서 IP로 통신을 한다. 하지만 IP 주소를 다시 MAC으로 바꾸는 절차(ARP, Address Resolution Protocol)을 거친다. cmd 창에서 물리적 주소 = MAC 을 확인할 수 있다. 우선 완전히 공개하진 않았지만 48bit로 이루어져있다. 하지만 표현은 16진법으로 되어있다. 그래서 12문자가 나온다. 그렇다면 왜 필요한 것인가가 중요하다. IP 주소가 유일한데..? ..

728x90
반응형