Computer Science/Computer Network
[Computer Network] Transport Layer
[Computer Network] Transport Layer
2025.10.15다시 한 번 말하지만 전송계층은 두 프로세스간 소켓을 연결한다. TCP는 이 계층에서 Reliability, Flow Control, Congestion Control, Connection Management를 수행한다.UDP는 데이터만 빠르게 전송할 뿐 TCP 처럼 연결 설정, 재전송 등은 수행하지 않는다. 프로세스는 소켓을 통해 데이터를 주고받지 네트워크와 직접 통신하지는 않는다. TCP 소켓은 연결형, UDP 소켓은 비연결형이고. Multiplexing호스트 하나에는 여러 프로세스가 동시에 네트워크를 사용한다.애플리케이션들은 걔내만의 소켓을 가지고 전송계층으로 데이터를 보내고, 전송계층은 소켓에서 온 데이터에 포트번호 등 적절한 식별자를 붙여서 구분 가능하도록 설정하고 네트워크로 보낸다. 즉, 여..
[Computer Network] Transport Layer Security
[Computer Network] Transport Layer Security
2025.10.14HTTPS는 HTTP + TLS + TCP로 구성된다. TLS 는 전송계층 보안 프로토콜으로 TCP 위에서 데이터를 암호화하고 무결성을 검증한다.TCP는 소켓을 잇는 통로. TLS는 통로를 안전하게 보장. HTTP는 실제 내용물. HTTP랑 TLS를 같이 쓸 때 HTTPS가 되는거지 전송 계층을 사용하는 모든 서비스에 TLS를 적용할 수 있다.SMTP IMAP 등등.. 이메일에 사용되는 프로토콜에도 TLS를 붙일 수 있음. Confidentiality데이터가 암호화되어 제3자가 내용을 볼 수 없다.대칭키 암호화를 사용 Integrity데이터가 전송 도중 변조되지 않음을 확인한다.SHA256 같은 해시를 사용 Authentication서버나 클라이언트가 각각 정말 내 목표가 맞는지를 보장한다.공개키 암호..
[Computer Network] Domain Name System
[Computer Network] Domain Name System
2025.10.14일단 사진 쭉 보고 시작하자. Top-Level Domain은 루트 도메인 바로 아래에 위치해서 인터넷 전체 도메인 공간을 대분류로 나눈다. (.com .org .kr...)루트 서버는 TLD 서버 위치를 알려주고, TLD 서버는 Authoritative DNS Server가 어디있는지를 알려준다.Authoritative DNS Server는 실제 IP주소를 알고 있다. 여기서 Response를 반환한다. 전국에 루트 네임서버는 A-M 까지 총 14개. 사용자가 웹사이트를 찾을 때는 먼저 ISP의 DNS 캐시에 쿼리한다.미스나면 루트 네임서버로 쿼리해야 한다. 해당 IP로 패킷을 보낸다.루트 서버 IP는 실제로 전세계 여러 서버 컴퓨터들이 같은 IP를 공유하고 있고, 라우터에 따라 가장 가까운 서버로 전..
[Computer Network] Cookie && Cache
[Computer Network] Cookie && Cache
2025.10.14HTTP는 상태가 없는데 웹서비스는 상태가 꼭 필요하다. 그래서 쿠키를 사용함.쿠키는 HTTP의 무상태성을 보완하기 위한 상태관리 매커니즘으로 브라우저 스펙이다. 브라우저가 대신 상태 정보를 저장하고 보내는 방식으로 무상태성인 HTTP를 보완한다. 서버가 Set-Cookie 헤더로 브라우저에게 쿠키를 저장하라고 명령을 내린다.근데 그렇다고해서 브라우저는 서버가 주는 쿠키를 주는대로 족족 받아먹는건 아님. 규칙에 맞춰서 먹을 것만 먹음. 도메인/호스트, Path, Secure, HttpOnly, SameSite 등등 여러 옵션 있음. 이거 보고 비교해서 저장할 수 있는 쿠키만 저장한다. 사용자가 처음 접속할 때는 쿠키가 없으니 브라우저는 서버에 빈 상태로 요청을 보냄이후 서버는 Set-Cookie 헤더로 ..
[Computer Network] HTTP
[Computer Network] HTTP
2025.10.14HTTP/0.9CSS JS 없이 HTML 문서 전송용으로만 설계된 버전으로 헤더 개념도 없었다.GET /index.html 한 줄짜리 명령어만 전송했고 메서드도 GET 하나 뿐.응답 역시 HTML 본문만 전송하고 응답이 끝나면 TCP 연결을 종료한다. HTTP/1.0HTML IMAGE CSS JS 등 다양한 리소스를 요청할 수 있다.HTTP/0.9는 확장이 불가능해 헤더와 MIME타입 상태코드를 추가한 버전인 1.0 버전을 도입함. 요청에는 요청 라인 + 헤더 + 본문 구조가 정립됐다.응답에는 상태 라인 + 헤더 + 본문 구조가 정립됐다. Content-Type 식별을 위해 MIME 시스템을 도입했고, 클라이언트가 받을 수 있는 타입을 명시해준다. 다만 매 요청마다 TCP연결을 새로 맺어야 했기에 페이..
[Computer Network] Internet Protocol Layer
[Computer Network] Internet Protocol Layer
2025.10.14응용 계층 (OSI 5/6/7)운영체제의 프로세스로 띄워지는 요소를 의미한다. 스프링으로 백엔드 서버를 구축하고 컴퓨터에 띄우면 하나의 독립된 프로세스가 되는데, 이 백엔드 서버가 응용 계층 역할을 수행한다. HTTP / SMTP / FTP 같은 프로토콜과 이 프로토콜을 사용하는 소프트웨어가 응용 계층에 속한다. 전송 계층 (OSI 4)TCP - HTTP/1.1, HTTP/2UDP - HTTP/3 (Chrome 브라우저) 이미 운영체제에 구현되어 있는 부분이라 직접 구현하지 않고 운영체제의 네트워크 스펙을 그대로 사용한다.포트번호를 사용한 프로세스 연결, TCP UDP를 사용한 오류제어 및 혼잡제어를 수행한다. TCP의 경우 1Gbps 에서 40명이 동시에 요청 시 대역폭을 나눠 25Mbps로 균등하게..
[Data Communication] Point to Point Protocol / 3G
[Data Communication] Point to Point Protocol / 3G
2025.06.17PPP는 2계층에서 동작하는 직접 연결용 프로토콜으로 말 그대로 두 지점 사이를 연결한다. Ethernet은 여러 장치가 공유하는 브로드캐스트 기반 LAN이고, PPP는 1:1 직렬 연결을 수행한다. PPP는 MAC 주소가 필요 없고, Ethernet은 전송만 하지만 PPP는 전송, 인증, 압축, 암호화 등을 모두 수행한다. Ethernet은 LAN 내부에서 쓰이고, 공유기가 WAN과 연결해서 ISP와 연결되는 경계선 역할을 수행한다면 PPP는 컴퓨터 하나가 직접 ISP 장비와 연결한다.Ethernet도 없고 MAC 주소도 없고 DHCP도 안 되는 환경에서 IP를 사용해 1:1 연결을 처리할 수 있다. 1:1 직렬 연결이 필요한 경우가 많이 없고, Ethernet MAC DHCP 기술 등 다양한 대안..
[Data Communication] Media Access Control과 Ethernet
[Data Communication] Media Access Control과 Ethernet
2025.06.12Media는 데이터가 흘러가는 통로로, 통신할 때 사용하는 물리적인 경로를 의미한다.여러 사람이 동시에 통신 매체를 사용하면 충돌이 발생할 수 있으니 적절한 제어가 필요하다. 시간을 나눠서 쓰는 TDMA 주파수를 나눠서 쓰는 FDMA코드를 나눠서 쓰는 CDMA 등 여러 Multiple Access기술을 사용하는데, 이 부분은 Multiplexing과는 다르다. Multiple Access는 여러 송신자가 같은 매체를 나눠서 사용하는 방식이고, Multiplexing은 여러 신호를 하나로 합쳐서 전송하는 기술이다. (송신자는 한명, 송신 데이터가 여러개) Pure ALOHA 프로토콜은 가장 초기 형태의 무선 통신 프로토콜으로, 누가 먼저 쓰는지 정하지 말고 그냥 보내는 Random Access 통신..
[Data Communication] 에러 제어와 ARQ
[Data Communication] 에러 제어와 ARQ
2025.06.11디지털 데이터 전송 중 노이즈 등으로 비트가 변하는 오류가 발생할 수 있다. Parity Bit 데이터에 패리티 비트를 1비트 추가해서 전체 1의 개수를 짝수나 홀수로 맞춘다. 단일 비트 오류는 검출할 수 있지만, 오류 수정은 안되고 짝수 개의 비트 오류는 검출할 수 없다. Checksum데이터 블럭의 합을 사용해 오류를 검출한다.데이터를 여러 블럭으로 나눠 합계를 계산하고, 이 합의 보수를 체크섬으로 전송한다. 수신 측은 받은 데이터 + 체크섬이 0이 되는지 확인하는 방식이다. 빠르지만 역시 오류 수정은 불가능함 CRC (Cyclic Redundancy Check)다항식 데이터를 이진 다항식으로 바라보고 미리 정해진 Generator Polynominal으로 연산.나머지(R)가 CRC 코드이고, 수..
[Data Communication] 공유기와 네트워크
[Data Communication] 공유기와 네트워크
2025.06.02스위치 - OSI 2계층에서 작동해 Local Area Network 내의 여러 기기들간의 연결을 처리한다. (유니캐스트)라우터 - OSI 3계층에서 작동해 LAN - WAN 간의 연결을 처리한다. 가정용 공유기는 스위치 + 라우터 + 무선AP 역할을 모두 수행하고, 네트워크를 탈 때는 여러 라우터를 거치게 된다. LAN을 구성하는 방식에는 여러 가지가 있다.이더넷 - 유선 통신 방식으로 이더넷 프레임 단위로 데이터를 전송한다. 와이파이 - 무선 통신 방식으로 WI-FI 프레임 단위로 데이터를 전송한다. 무선 통신을 수행할 때는 무선 단말기가 유선 LAN에 접속할 수 있도록 중계해주는 Access Point를 사용한다.즉, 와이파이를 사용하더라도 이더넷에 연결되어야하고, 이더넷을 통해 라우터로 연결..
[Data Communication] 물리 계층에서의 다중화
[Data Communication] 물리 계층에서의 다중화
2025.04.16여러 사람이 동시에 이야기하면 같은 주파수, 같은 시간에 간섭이 발생해 무슨 말을 하는지 알아듣기 어렵다. 마찬가지로.. 여러 개의 전화기나 컴퓨터도 동시에 서로 같은 전송 매체를 통해 통신하려 하면, 신호가 겹치고 충돌이 발생해 서로의 데이터를 제대로 수신할 수 없다. 케이블, 무선, 광섬유 등 통신 채널은 한정되어있고, 여러 기기가 동시에 사용하려면 한 채널에서 여러 데이터를 보내는 기술이 필요하다.이 기술을 Multiplexing이라고 부르고, 송신 측에서는 Multiplexing으로 데이터를 전송했다면 수신 측에서는 Demultiplexing으로 합쳐진 데이터를 개별 데이터로 분리하는 작업을 수행해야 한다. TDM : 시간 단위로 나눠서 각각 전송하는 기법을 의미한다.FDM : 서로 다른 주파..
[Data Communication] 물리 계층에서의 데이터 전송
[Data Communication] 물리 계층에서의 데이터 전송
2025.04.02디지털 통신은 컴퓨터가 이해할 수 있는 비트를 주고받는 일인데.. 소리나 영상 같은 아날로그 데이터를 전송하려면 데이터를 비트로 변환해야 한다. 이 과정에서 물리 계층이 개입되고, 이 계층은 전기 신호 / 소리 / 빛 등 아날로그 신호를 비트로 표현하는 역할을 수행한다.물리 계층에서는 유선 케이블을 사용할 때와 무선랜을 사용할 때 비트를 변환하는 방식이 다르다. 유선 케이블을 사용할 때는 라인코딩을, 무선랜을 사용할 때는 사인파를 조작한다.무선에서도 라인코딩을 전혀 사용하지 않는 건 아니지만, 통신 특성 상 유선에서는 디지털 비트를 다른 디지털 신호로 변환하는 라인코딩이 중요하다. 주파수는 두 가지 방식에서 모두 사용하지만.. 무선랜에서 좀 더 중요하게 다뤄진다. 아날로그에서의 대역폭 - 주파수 범위 ..