# Networks - Also involves a computer update - **LONG IN THE FUTURE - needed for final rendition of science system, but this is very low priority.** ## General - Singleton global datums for records, techwebs, etc, kinda sucks - Inspired by Nebula networking systems ## Networks - Different computer networks made in game - Networks consist of relays, and functional objects - Client-server architecture, kinda - Mainframe manages an entire network - Some servers are singletons - should only have one per network, more won't work (only one will be allowed to be linked) - Others can be duplicated (research correlation servers, triangulation nodes, relay, routers, etc) - Servers represent network functionality - Clients request network functionality - A server can act like a client ## Relays, Communication - Power networks can transmit a network across - Network cables can transmit a network across - Machinery either connect to wired networks, or wireless networks. - Wireless: - Wired cables can connect to wireless relays - Wired networks can be bridged with subspace relays ## Devices - /datum/network_connection/wired, /datum/network_connection/wireless, and /datum/component/network_connection - Unsure real structure yet, may need to move away from components - Each device utilizes a network connection - Connects to any network the connection can access - Toggle between networks - Connection types: - Wired (network cable or wires) - If network cable, cables should be **smart wire only** and **extraordinarily cheap.** - Area (APC) - Wireless (relays) - Bridge connection types (inter-network bridging): - Physical connection to a router - Layered wires - router handles internetwork bridging, don't directly connect by default - Subspace relays to expand a network into another area. ## Servers - A network has servers with roles on them - Mainframe determines network ID and everything else - File servers store data - Special mainframes that store science, security, and medical data? - Logging server, read-only for the most part, logs network actions to disk - Router controls inter-network communication - Firewall controls network security - Access Controller controls what can access a network - Mainframe links to servers via ID + network ID - Optional mainframe "Secret" key used to authenticate root level servers - Taking out servers limits network functionality - Taking out mainframe or severing connection completely kills the network. - Multiple mainframes per network won't work - Department mainframes are nigh-indestructible and have static, overriding IDs - Other mainframes will automatically section into numbers - physically impossible to conflict. - Servers can be registered to multiple mainframes but why would you do that?? ## Authentication - All devices have an unchangable network ID - You can block IDs using the firewall - You can entirely block wireless or inter-network communication with the firewall - Networks have secret keys used to allow servers to be linked - Networks have user accounts - One superuser account per mainframe - RNG password for remote shell access - Always accessible via directly interacting with the mainframe physically - Allows full access to network (not servers, but you can simply bypass servers via mainframe) - Every server has a superuser account - Same rules as above - Allows control to that server - Resources like techweb access defaults to "can access network", but can be locked to certain user permission flags instead - Access controller manages this - Permissions lists that things check for - Other networks have virtual accounts - Allow permission control of internetwork behavior - Each crewmember has a default account - Each ID has a default account - Each crewmember has the same default account as their ID ## Inter-Network - Each department has a set of network devices - Station has a master network with default permissions - To get data from another network, one network has to go through this master network from its network, to the destination, and return data. - Primary network is fully wireless, other than wirenet connections to department networks - Default network for station equipment - Full structure: - Station has a master network - Subnetworks for each department + AI and cyborgs - Each network will have the same basic machines - Mainframe - Logging server - Access Controller - Router - Firewall - Fileserver(s) - Wireless transreceiver - Connected to station main network - Special machinery - Security records fileserver - Medical records fileserver - Research mainframe (not a fileserver, stores master research data) - Research correlation servers (not a fileserver) - Backup individual records to files - AI control machinery ## Shell - Shell commands for modular computers - Nebula has servers just be subtypes of modular computers - we should do this too. - Login to other nodes with shell - ACL on each computer for what flags are required on an account to log in - Defaults to allowing network login - also required for network functionality - Might need to make this more permissive - Shell executes command on remote computers if connected - Allows for bounce chaining - Shell commands and most GUI programs are linked so you can do *most* but not all things on GUI with shell ## Silicons - Cyborgs get an innate ability to connect to any network - Connecting to unsafe networks might be a bad idea - they need to be "anchored" on a primary network that gives them access - Defaults to the AI's network - New server peripherels? - Door controller - APC controller - Cameranet controller - Miniature combiined AI access manager for subnetworks - New devices? - All devices using default wireless connection to their APC, which then connects to a network node in substation - Taking out cameranet won't prevent silicons from using network to access, they'll just be blindfiring kinda - AI can connect to any network with an AI relay - Can be configured to block out AIs - Camera access decoupled from control - In exchange, **greatly** increased control from AIs for machinery - To make cutting out AI more difficult, could do control cutting + APC cut? - WIP ## Triangulation - New servers that can be duplicated: - Trianglation servers - Relays - Wireless relays with a triangulation server allows for - Logging server to automatically give approximate location of a device that does a static action - This gets more accurate with time if the user isn't moving - Active triangulation of "socket" systems like ongoing voicecalls/downloads that continually become more accurate as time goes on - AI actions count as one of these always. ## Devices - Security HUDs - facial recognition uses security records server - Diagnostic HUDs - basic damage can be evaluated, anything more requires connection to servers - Medical HUDs - anything but the "healthbar" which is always usable - AI, cyborgs - Network control, arbitrary cameranet access - **Science** - All kinds of fabricators can download designs if they can access a research server in some way - R&D consoles use this entirely - Genetics console download genetic data - Efficiency upgrades depend on this - Modular Computers - mostly serving as thin-ish clients, allows for local storage + processing but mostly requires this - Tablets having scanners for network IDs on things - PDAs - should be combined with tablets when possible. - Most machinery should be linked if possible - Security system: - Individual network keys? - Station master door, APC, air alarm controllers? - APCs governing rooms? Doors defaulting to APC network? - APCs being able to either join a powerline network or a network cable specifically? - Everything controllable by command line with the right authentication keys - Silicon transreceiver nodes automatically grant this? - Wires to cut for network control + AI control at once? - Normal clients: stationwide access codes on a master server? Server forcing syncs? Department servers? Etc - Enforced network crosspoints at routers would make this easier. ## Antagonism - Break into the research server and rm -rf / science's work - Use shells to bounce connections around to make tracking harder - Steal people's IDs for automatic network login - Break into the physical servers to give yourself network all access - Break the logging server - Gain permissions on door controller, manually key doors open with shell - Fuck with the AI/cyborgs for fun and profit - Take down network lines and relays - Gain access to devices and fuck with them - If this is implemented it should be extraordinarily obvious so you don't have AIs getting lynched for no reason