일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mp4fpsmod
- 달인막창
- preemption #
- JanusWebRTC
- PytestPluginManager
- 티스토리챌린지
- k8s #kubernetes #쿠버네티스
- PersistenceContext
- 자원부족
- terminal
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- 코루틴 빌더
- JanusWebRTCGateway
- JanusGateway
- 오블완
- python
- 겨울 부산
- table not found
- taint
- tolerated
- Spring Batch
- VARCHAR (1)
- 깡돼후
- 개성국밥
- 코루틴 컨텍스트
- kotlin
- Value too long for column
- pytest
- JanusWebRTCServer
- vfr video
목록Computer Networks (29)
너와 나의 스토리
시그널이란? 특정 상황이 되었을 때 운영체제가 프로세스에게 해당 상황이 발생했음을 알리는 일종의 메시지를 가리켜 시그널이라고 한다. 시그널 등록이란? 특정 상황에서 운영체제로부터 프로세스가 시그널을 받기 위해서는 해당 상황에 대해서 등록의 과정을 거쳐야 한다. 시그널과 signal 함수 프로세스와 운영체가 하는 일 ex) 자식 프로세스가 종료되면 프로세스가 zombie_handler라는 이름의 함수를 호출하도록 하고 싶을 때 프로세스: zombie_handler라는 함수 생성 운영체제: 자식 프로세스가 종료되면 대신 zombie_handler 함수 호출해줌 시그널 등록 함수(시그널 등록할 때 사용) 매개변수 선언: int signo, void(*func)(int) signo: 특정 상황에 대한 정보 vo..
Time-wait의 이해 Four-way handshaking 호스트 A를 서버라고 하자, 서버가 호스트 B로 FIN 메시지를 먼저 보내고 있으니, 서버가 콘솔상에서 CTRL+C를 입력한 상황으로 볼 수 있다. 이 때, four-way handshaking이 끝나고 바로 소켓이 소멸되는 것이 아니라 일정시간(time-wait)을 거친다. 먼저 연결 종료를 요청한 호스트만 time wait 상태를 거친다. 소켓이 time-wait 상태에 있는 동안에는 해당 소켓의 PORT 번호가 사용중이므로 다른 소켓에 할당할 수 없다. Time-wait의 존재 이유 호스트 A가 마지막 ACK을 전송하고 바로 소켓을 소멸시켰는데, 그 ACK이 소멸된다면? 호스트 B는 호스트 A가 자신의 FIN을 못 받은지 알고 계속 FI..
Network layer 송신자 호스트에서 수신자 호스트로 세그먼트를 transport 송신측: 세그먼트를 datagrams으로 캡슐화 수신측: segment를 transport layer로 전달 2개의 주요 network layer functions forwarding: 라우터의 input포트에서 적절한 라우터의 output포트로 패킷을 이동시킴 routing: 출발지에서 목적지까지 패킷이 이동할 경로를 결정 라우팅 알고리즘을 이용하여 포워딩 테이블을 만드는 작업 routing algorithm: 경로 결정 forwading table: 선택된 경로를 저장해 둔 것 Connection setup datagram이 전송되기 전에, 두 개의 end hosts와 중간 라우터들은 virtual connecti..
TCP point-to-point: 한 명의 송신자, 한 명의 수신자 multicasting 불가 tcp는 오로지 end system에서만 동작 중간에 라우터나 브리지에서 동작하지 않는다 reliable, in-order byte stream: 메시지 경계가 없다 => 패킷 트레인 이용 pipelined: TCP congestion과 flow control에서 window 사이즈를 설정한다. full duplex data 같은 연결에서 bi-directional data flow 보내는 것과 받는 것이 동시에 가능 A->B로 보내면 B->A로 보낼 수 있음 MSS: 최대 세그먼트 크기 세그먼트의 데이터 필드의 크기 제한 사이즈 큰 파일 전송할 때, MSS 크기로 파일 자른다. connection-orie..
TCP 서버의 기본적인 함수 호출 순서 listen() 함수를 호출하면 연결 요청이 가능한 상태가 된다. 이 listen() 함수의 호출이 의미하는 바를 알아보자 연결 요청 대기 상태로의 진입 연결 요청도 일종의 데이터 전송이다. 따라서 연결 요청을 받아들이기 위해서는 하나의 소켓이 필요하다. 이 소켓을 가리켜 서버 소켓 또는 리스닝 소켓이라고 한다. listen 함수의 호출은 소켓을 리스닝 소켓이 되게 한다. 클라이언트의 연결 요청 수락 연결 요청 정보를 참조하여 클라이언트 소켓과의 통신을 위한 별도의 소켓을 추가로 하나 더 생성한다. 이렇게 생성된 소켓을 대상으로 데이터의 송수신이 진행된다. TCP 클라이언트의 기본적인 함수호출 순서 connect() 함수 호출할 때 연결할 서버의 주소 정보도 함께 ..
인터넷 프로토콜(IP) 기반 소켓의 경우, 데이터 전송방법에 따라 TCP 소켓과 UDP 소켓으로 나뉘고, 특히 TCP 소켓의 경우 연결을 지향하기 때문에 '스트림 기반 소켓'이라고도 이야기한다. TCP(Transmission Control Protocol): 데이터 전송과정의 컨트롤 Application layer(5계층): 프로토콜 결정 (FTP,SMTP,HTTP,...) Transport layer(4계층): 통신 방식 결정 (TCP/UDP) Network layer(3계층): 데이터 전송 교환 담당 (IP - router 이용) Link layer(2계층): 완전 실제 전달 Link 계층 Link 계층은 물리적인 영역의 표준화에 대한 결과이다. 이는 가장 기본이 되는 영역으로 LAN, WAN, MA..
application processes는 서로 message를 운반하기 위해 transport layer에서 제공하는 logical communication을 이용한다. Transport services and protocols 다른 호스트에서 작동하는 app 프로세스들 사이에서 logical communication을 제공한다 end systems에서 transport protocols이 작동된다. 보내는 측: 메시지를 segment 단위로 쪼개서 network layer에 보낸다 rcv 측: segments를 message로 재조합해서 app layer로 보낸다. app에 사용 가능한 transport protocol -> TCP and UDP Transport vs network layer netw..
Socket programming 두 개의 transport services를 위한 두 개의 소켓 타입 UDP: Unreliable datagram TCP: reliable, byte stream-oriented socket programming with UDP UDP: 클라인트와 서버 사이에 연결이 없다 데이터 보내기 전에 handshaking 없다 각 패킷에 IP 목적지 주소랑 port 명시적으로 부착하고 보냄 (따로따로) rcvr은 수신한 패킷에서 발신자 Ip주소와 포트 번호를 추출 UPD: 전송된 데이터가 솔실되거나, 뒤죽박죽으로 도착 가능(out of order) 패킷 단위로 보내서 상황에 따라 뒤에 순서인 것이 먼저 도착 가능 이럴때는 그냥 버리고 다시 받음 Application 측면: UDP..