개발자의 기록장 블로그

만나서 반가워 !
이거 좋아해?

전송계층
·
Computer Science/Computer Network
전송계층에는 두가지 서비스 프로토콜이 존재한다. 연결형 서비스를 지원하는 TCP와 비연결형 서비스를 지원하는 UDPUDP는 TCP에 비해 매우 간단한 구조와 개념을 가진 프로토콜이다.  UDPUDP는 비연결형 서비스를 지원하며 헤더와 데이터에 대한 checksum 기능을 제공한다. 비연결형 서비스이기 때문에 BestEffort 방식으로 데이터를 전송하며 이는 수신 프로세스가 데이터를 반드시 수신 받는 것을 보장하지 않는다. 다만 최선을 다해 전송할 뿐!! 이 말은 데이터가 도착했는지 확인하지 않는다는 것이고 그로인해 전송 속도가 빠른 프로토콜이다. UDP 헤더에는 SourceAdd, DestAdd, Length, Checksum 4가지가 들어간다. 수신 프로세스가 UDP 헤더의 checksum에서 오류를..
16. 리스트 + 튜플 조합의 정렬
·
Language/Python
리스트 안에서 튜플을 사용하는 자료형을 알고리즘 문제를 풀면서 자주 보았다. 그때마다 썼던 정렬 형식을 정리하려고 쓴 글!  1. 첫 번째 원소로 오름차순L = [(3,4),(2,2),(-1,-1),(1,1)]L.sort(key = lambda x : x[0])2. 첫 번째 원소로 내림차순L = [(3,4),(2,2),(-1,-1),(1,1)]L.sort(key = lambda x : -x[0])L.sort(key = lambda x : x[0], reverse = True)3. 두 번째 원소로 오름차순L = [(3,4),(2,2),(-1,-1),(1,1)]L.sort(key = lambda x : x[1])4. 첫 번째 원소로 오름차순, 첫 번째 원소가 같은 경우 두 번째 원소로 오름차순L = [(3,..
TCP 프로토콜
·
Computer Science/Computer Network
전송계층은 데이터 링크 계층과 기능적 측면(흐름제어, 오류제어, 순서 확인 ---)에서 유사하다. 그러나 데이터 링크 계층은 물리적 선로를 사용하기 때문에 라우팅 기능이 필요없고 (Node to Node) 전송 계층은 논리적 선로를 사용하기 때문에 라우팅 기능이 필요하다. Logical Link를 통해 데이터가 호스트에서 호스트까지 전송되는 시간동안 지연이 발생한다.그 말은 지연이 발생하는 그 시간동안 데이터가 네트워크에 저장돼있다고 볼 수도 있는데, 이 때문에 네트워크를 잠재적 기억 장치라고 부르기도 한다. TCP 주요기능1. 흐름제어 : 데이터 링크와 유사하다. 수신 버퍼가 넘치면 패킷 손실이 발생하므로 송신 윈도우의 하단값을 조절한다. 2. 오류제어 : 데이터 변형과 분실의 처리로 대부분 소프트웨어..
네트워크 계층
·
Computer Science/Computer Network
네트워크는 유선 고정 사용자 ( PSTN, ISDN 등의 음성 서비스 ) 에서 무선 이동 사용자 ( 광대역 멀티 미디어 ) 로 추세가 바뀌고 있다. 이때 우리는 이동 사용자의 IP를 어떻게 처리할지 고려해야한다. 이동IP프로토콜이동 IP 프로토콜은 터널링 방식으로 구현된다. 터널링 방식을 서울에서 일본으로 여행을 가는 것으로 생각해보자. 기존 유선 고정 사용자 방식에서는 철수가 서울에서 공항까지 버스를 타고 버스에서 내려서 비행기를 타고 비행기에서 내려서 일본에 도착한다. 즉 철수는 자신이 교통수단을 환승하는 사실을 인지한다. 무선 이동 사용자 방식에서는 철수는 버스에서 내리지 않는다. 대신에 버스를 비행기에 태운다..!철수가 잠이 들었다면 자신이 버스인지 비행기인지 알 수 없을 것이다. 이런 방식을 터..
IP 프로토콜
·
Computer Science/Computer Network
네트워크 계층에서 가장 중요한 작업은 패킷의 이동경로를 정하는 작업, 즉 라우팅 기능을 적절하게 진행하는 것이다.경로를 선택함에 있어서 중요한 점은 혼잡제어와 패킷의 분할/병합이 필요하다. 라우팅라우팅은 라우팅 테이블을 가지고 경로를 결정하는 과정이다. 라우팅 테이블은 네트워크 상황에 따라 달라질 수도(동적 라우팅) 고정될 수도(정적 라우팅) 있다. 혼잡제어혼잡제어는 경로에 패킷 수가 과도하게 집중되면 발생하는 혼잡을 제어하는 것이다. 먼저 흐름제어와 혼잡제어를 구분해보자. 혼잡제어는 서브넷을 포함한 전반적인 네트워크의 전송능력을 다룬다. 흐름제어는 두 호스트 사이의 점대점 전송속도를 컨트롤 하는 것이다. 혼잡의 원인으로는 지나치게 많은 패킷의 유입이 있다. 패킷이 오버하게 오면 라우터가 이 내용을 패스..
데이터 링크 계층
·
Computer Science/Computer Network
데이터 링크 계층은 신뢰성있는 데이터 전송을 보장한다. 신뢰성이란 프레임 분실/변형등의 오류를 검출하고 복구하는 것을 말하며 이를 재전송 기법을 통해서 해결한다.  위 방법으로 논리적인 전송선로를 네트워크 계층에게 제공한다. 재전송 기법을 하기 위해서 일단 오류가 발생한 것을 감지해야 가능하다. 이를 위해서 데이터 전송원리 즉, 데이터를 선로를 통해 보내는 방법인 프로토콜에 대해서 알아보아야 한다. 데이터링크계층데이터 링크 계층에서는 호스트 끼리 1:1 연결돼있는 상태를 전제한다. 사실 연결의 의미는 자세히 말하면 전송의 의미와 비슷하다.  두 호스트가 점대점 방식으로 연결되있는 방식이 있고, 멀티드롭 방식으로 하나의 전송매체를 공유해 여러 호스트가 달려있는 경우도 있다. 후자의 경우 전송시에는 하나의 ..
MAC 계층
·
Computer Science/Computer Network
LAN계층은 좁은 지역에서 구성되는 네트워크로 전송효율을 중요시하는 연결방식이다. 효율은 상황마다 다르기 때문에 그 연결 형식이 다양하게 존재한다. 따라서 전송 선로의 특성과 매체간 연결 방식에 따른 처리 계층이 필요한데 이를  MAC계층에서 담당한다. 사실 LAN에서의 데이터링크계층은 두가지로 나뉜다. LLCMACLLC 계층은 일반적인 데이터 링크 계층의 기능을 수행한다. 뭐 오류제어라던지 흐름제어라던지...사실 WAN에서는 MAC계층이 존재하지 않는다. LAN의 다양한 연결형식 때문에 LAN의 데이터 링크 계층에 MAC 계층이 추가된 것이라고 생각하면 된다. MAC계층은 전송선로의 물리적 특성을 반영한다. 이는 LAN의 구조에 따라 다양하다. LLC계층은 큰 영향을 받지는 않지만 부분적으로 영향을 받..
데이터 전송의 기초
·
Computer Science/Computer Network
데이터를 전송한다라는 것은 기본적으로 '누가' '누구에게' '무엇을' 보내는 것을 말한다. 누가와 누구에게는 당연히 송신호스트와 수신호스트이고 무엇은 데이터일 것이다.  데이터는 과연 네트워크망에서 어떻게 움직일까? 송신호스트가 수신호스트에게 받아라! 하면 받는 것은 아님이 분명하다.  데이터데이터는 데이터 링크 계층에서 프레임이라고 불린다. 프레임에는 문자프레임과 비트 프레임이 존재한다. 문자 프레임은 프레임 내용이 문자로 구성된 8bit의 고정된 길이를 가지며 비트 프레임은 프레임 내용이 비트로 구성된다. 문자프레임은 데이터 내용의 시작과 끝에 DLE'STX와 DLE'ETX ASCII 문자를 추가해 플레그와 데이터를 구분한다.만약 DLE문자가 데이터 내용에 포함된다면 문제가 발생할 수 있는데 이를 해..